云计算:2、虚拟化技术

上传人:M****1 文档编号:568792462 上传时间:2024-07-26 格式:PPT 页数:56 大小:10.23MB
返回 下载 相关 举报
云计算:2、虚拟化技术_第1页
第1页 / 共56页
云计算:2、虚拟化技术_第2页
第2页 / 共56页
云计算:2、虚拟化技术_第3页
第3页 / 共56页
云计算:2、虚拟化技术_第4页
第4页 / 共56页
云计算:2、虚拟化技术_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《云计算:2、虚拟化技术》由会员分享,可在线阅读,更多相关《云计算:2、虚拟化技术(56页珍藏版)》请在金锄头文库上搜索。

1、虚拟化技术Page 2内容n1 不同层次的虚拟化n2 虚拟化的定义n3 虚拟化的动机 n4 硬件虚拟化实现n5 虚拟机迁移技术 n6 虚拟化的一个应用实例:用户计算环境移动化 n7 虚拟化产品 n8 物理集群与虚拟化集群 n9 虚拟化的优势应用场景 n10 虚拟化与云平台不同层次的虚拟化 n虚拟化是一种计算机体系结构技术。n虚拟化的基本思想是分离软硬件以产生更好的系统性能。n虚拟化软件层的主要功能是将一个主机的物理硬件虚拟化为可被各虚拟机互斥使用的虚拟资源。n虚拟化可以在不同的操作层实现虚拟化可以在不同的操作层实现:ISA级硬件级操作系统级运行库支持应用程序级Page 3n指令集体系结构级虚拟

2、化 虚拟化通过使用物理主机的ISA模拟一个给定的ISA来实现。 代码解释、动态二进制翻译n硬件抽象级虚拟化 虚拟化一个计算机资源(处理器、内存、I/O设备),使得用户可分时使用硬件资源,为虚拟机构建一个虚拟硬件环境。例如,Xen。 必须从头创建镜像,初始化效率太低、镜像重复内容多n操作系统级虚拟化 在单一物理服务器上创建隔离的容器和操作系统实例,这些容器像真实服务器一样运行,通常被用来创建虚拟主机环境,在不信任用户之间分配硬件资源。 在一个操作系统中插入一个虚拟化层来划分机器的物理资源,实现在一个操作系统内核中同时运行多个隔离的虚拟机。这些虚拟机也称为虚拟执行环境VE、容器或虚拟专用系统VPS

3、。VE有自己的进程、文件操作系统、网络接口、个人设置等定制信息。优点:启停开销低、初始化效率高、可获取和与主机环境状态同步;缺点:所有VE必须使用相同的客户操作系统。n库支持级虚拟化 使用用户级库提供的虚拟化能力。例如,WINE实现了在UNIX主机上运行Windows程序的接口能力;又如,vCUDA,运行应用程序在虚拟机中执行时利用GPU的硬件加速能力。n应用程序级虚拟化 应用程序级虚拟化将一个应用程序虚拟化为一个虚拟机,也称为进程级虚拟化。该虚拟层在操作系统之上抽象出一个虚拟机,可运行按该特定抽象机器定义而书写的程序。例如,JVM。 n进程虚拟机扩展阅读:金海著 计算机系统虚拟化原理与应用P

4、105 “进程 级虚拟化”虚拟化的定义n虚拟化是指对物理资源的逻辑表示(而非简单的抽象),通常是将一组物理资源虚拟为多组逻辑资源,或者将多组物理资源虚拟为一组逻辑资源。nVirtualization is the creation of a virtual (rather than actual) version of something in the area of computing, such as an operating system, a server, a storage device or network resources.Page 7虚拟化概念Page 8通过虚拟化软件套件

5、模拟的、具有完整硬件功能的、运行在一个隔离环境中的逻辑计算机系统虚拟机虚拟机里的操作系统客户操作系统虚拟机的存储实体,它通常是一个或多个文件,包括虚拟机的配置信息和磁盘数据,还可能包括内存数据虚拟镜像虚拟机要仿真的真实机器,即与虚拟机对应的真实平台本地机提供完整的系统环境,可支持操作系统及用户进程。只要系统环境存在的,虚拟机就为操作系统提供支持。系统虚拟化包括了预安装、预配置的操作系统、中间件和应用的最小化的虚拟机虚拟器件n主机操作系统(Host OS)、客户操作系统nVMM(Virtual Machine Monitor) 硬件级虚拟化时在真实硬件和传统操作系统之间插入的一层软件一层软件,通

6、常称为虚拟机监视器,负责管理计算机系统的硬件资源,每次应用程序访问硬件时,VMM会捕获该访问请求。 对VMM的需求:提供与原始硬件机器基本一致的环境;性能损耗可以接受;完全控制系统资源。虚拟机的基本操作虚拟化的动机n带来的好处(技术角度)将底层物理设备与上层操作系统、软件分离、去耦合 软件与硬件去耦合; 应用程序与操作系统去耦合实现IT资源利用效率最大化使用更灵活图片资料来自中国计算机学会ADL性能损耗n实验对比了各种Xen虚拟机实例与非虚拟化环境下的Linux操作系统的网络吞吐量。nXen-domain0是Xen产品中一个特殊的虚拟机,能直接访问各种硬件资源;Xen-guest0是指同时运行

7、一个Xen-domain0和一个普通的虚拟机(VM)实例,两者拥有各自的网卡设备,共享CPU资源;Xen-guest1与Xen-guest0大致一样,二者不同是Xen-guest1中的Xen-domain0和普通虚拟机各自拥有一个CPU,不存在CPU资源竞争。Page 12虚拟化的性能损耗n性能损耗的原因 James E. Smith虚拟机系统与进程的通用平台n提高虚拟化性能 金海著 计算机系统虚拟化原理与应用P85减少环境切换开销 1、处理器从一个进程切换到另一进程,需要保持原来状态和恢复新状态;客户操作系统切换到空闲进程时不切换页表; 2、从客户操作系统切换到虚拟机管理器; 3、批量工作,

8、一次调用执行多个HyperCall; 4、其它提高I/O设备虚拟化性能 1、优化客户操作系统的驱动; 2、客户操作系统直接访问I/O 3、建设I/O操作的CPU开销硬件虚拟化实现nCPU虚拟化nX86体系结构在虚拟化时的问题 由于指令集中有一部分敏感指令不是特权指令,在低权限级运行时不会陷入,无法由硬件保证VMM能接管所有状态和控制相关指令。 如何保证需要监控的指令能够发生陷入?二进制代码动态翻译 在执行时动态重写虚拟机的执行代码,在敏感指令前插入陷入指令。 优化问题半虚拟化 修改客户操作系统的源代码,将待监控操作替换为对虚拟机管理的超级调研HyperCall。优点:接近裸机运行性能;缺点:修

9、改操作系统。预虚拟化 修改编译器,在编译时将需要VMM监控和模拟的指令替换为对VMM接口的调用,无需人工修改操作系统代码。硬件辅助 引入新的指令和处理器运行模式:VMM和客户操作系统运行在不同的模式下,硬件支持模式切换。 Intel VT-x, Intel VT-I, AMD SVMn硬件辅助的CPU虚拟化两种处理器工作模式:root (VMM) 和non-rooot (客户操作系统)执行VMXON指令进入Root模式运行VMM代码执行VMLAUNCH指令进入non-root模式运行客户操作系统指令执行VM exit指令回到root模式执行VMRESUME指令回到non-root模式non-r

10、oot模式执行VMXOFF指令退出虚拟化状态n内存虚拟化传统操作系统:段页式(已算虚拟化)需要将机器的内存分配给各个虚拟机,并维护机器内存和虚拟机所见到的“物理内存”的映射关系,使得这些内存在虚拟机看来是一段从地址开始的、连续的物理地址空间。几个概念: 机器地址:真实硬件的机器地址; 物理地址:经过抽象,虚拟机看到的伪伪物理地址。 虚拟地址:客户操作系统提供给其应用程序使用的线性地址空间。n内存虚拟化(半虚拟化方式,以Xen为例子) Xen剥夺客户操作系统对页表的写权限,每次对页表的写都陷入到VMM加以验证和转换。验证保证只操作属于该虚拟机的机器页面。转换则Xen根据自身维护的映射关系f,将页

11、表项中的物理地址替换为相应的机器地址,最后再把修改过的页表载入MMU,这样MMU就根据修改过的页表直接完成虚拟机地址到机器地址的转换。n内存虚拟化(全虚拟化方式,影子页表,无法修改源代码时使用) 影子页表技术为客户操作系统的每个页表维护一个影子页表,将合成后的映射关系写入影子页表,客户操作系统的页表保持不变(而半虚拟化则会被写入合成映射关系),然后再由VMM将影子页表交给MMU做地址转换。 nI/O虚拟化n全虚拟化:客户操作系统看到的一组统一的虚拟I/O设备,客户操作系统对这些虚拟设备的每个I/O操作都会陷入到VMM中,由VMM对I/O指令进行解析并映射到实际物理设备,直接控制硬件完成。 例如

12、:VMWare ESX Server 优点:性能较好,对客户操作系统完全透明; 确定:VMM设计复杂,无法应对设备的快速更新n半虚拟化:向客户操作系统提供了一个不同于传统I/O设备的虚拟设备界面,需要在客户操作系统中为每个虚拟I/O设备安装一个特殊的驱动。该驱动负责把客户操作系统的I/O请求传递给特权域。虚拟机迁移技术 n将虚拟机从一个物理服务器移动到另一个物理服务器的过程被称为虚虚拟机迁移拟机迁移n必要性虚拟机迁移可自动适应服务器中的负载动态变化。(负载均衡)有计划的维护会导致用户无法使用服务器。虚拟机迁移可将VM迁移到其他服务器上,维护结束后移回原服务器。安全性,隔离被攻击的虚拟机容错,从

13、失效的主机移动到其他服务器。排列,将需要通信的虚拟机放在一起。迁移,从旧服务器转移到新的服务器上,而且对服务不会产生影响。功耗管理,把负载从过热的服务器移开。n迁移动机:大部分情况下,迁移是因负载均衡和服务器合并等策略自动发起。(也可手动发起迁移,较少见)n虚拟机迁移步骤开始迁移:为后继的迁移做准备,包括确定要迁移的虚拟机和目标主机。传输内存:虚拟机的执行状态存储在内存之中,需要向目标节点发送虚拟机的内存确保虚拟机提供服务的连续性。(此阶段不中断程序运行)挂起虚拟机,并复制最后的内存数据:在最后一轮传输内存数据时,挂起正在被迁移的虚拟机。其它非内存数据(CPU状态等)也被同时发送。(此阶段存在

14、停机时间)提交并激活新主机:在目标主机上,虚拟机重新装载其状态,恢复其中运行的程序,继续提供服务。网络连接被重定向到新虚拟机上。从原主机移除原始虚拟机。n内存迁移 预复制:在虚拟机没有停止执行的情况下,从源机器反复将内存中的内容通过网络复制到目标机器上。 停止执行再复制:冻结虚拟机的状态,通过最后一次复制,将整个剩余的内存内容迁移到目标节点机器。(中间会被修改,记录下脏数据) 确保内存状态一致性的前提下,优化迁移效率。 迁移效率:运行停止时间、整个系统迁移的时间 n文件系统的迁移迁移虚拟机时,需要将虚拟磁盘内容和虚拟机其它状态一起迁移磁盘容量巨大,如果需要通过网络传输,代价极高(1)如果使用网

15、络文件系统(全局性文件系统),则所有虚拟机都可以访问,无需复制虚拟磁盘状态。(2)否则需要在恢复虚拟机时将虚拟磁盘的状态传输到目标机器。 写时复制技术:仅发送不同的数据块,无需传输整个大型文件系统;VLAN设置?n网络的迁移(1)由迁移虚拟机的主机主动发送应答ARP消息,广播IP地址被转移到新的机器上。(原来的IP已被转移到新服务器MAC地址上) 实例:Xen 限制:有些路由器不转发ARP包,所以不是所有场合都能适用。(2)交换机端口识别 虚拟机提供虚拟网卡,每个虚拟网卡有一个虚拟MAC地址。每个虚拟网卡与一个或多个物理网卡关联。 迁移时可以保持网络连接不断,从一个机器迁移到另一机器。 实例:

16、VMWare VMotion 前提(限制):源机器和目标机器处在同一网段的子网中。(3)IP隧道+动态DNS+更新IP 当迁移源机器和目标机器通过广域网连接时,迁移后的虚拟机将得到新IP地址。为了保持网络连接不中断,迁移时使用IP隧道技术,迁移结束后通过更新DNS,将网络连接指向新IP地址。n虚拟机迁移实例VMotionVMotion是VMWare云管理产品VirtualCenter基础结构管理软件的一部分。nVMotion的限制:源、目标机器必须在同个服务器集群中,由相同的VirtualCenter管理;源、目标机器的文件系统必须相同,而且位于SAN存储网络的共享磁盘上;运行在两个机器上的处

17、理器体系结构必须相同;虚拟机支持千兆以太网适配卡; 镜像大小,交换机对迁移的支持,对数据中心内部网络带宽提出的挑战虚拟机不能运行多处理器集群应用。分布式系统中的代码迁移n分布式系统通信 以传输数据为主 但也可以按需要传输程序(代码,甚至是正在执行的代码) 代码迁移:以进程迁移的形式进行n强可移动性:迁移的进程,在目标机器上可以从原先中断的位置继续执行。n弱可移动性:迁移的程序必须从预先定义的几个位置之一开始执行。n代码迁移的动机,一般都是为了减少数据通信的量,也是说使得计算的位置离数据所在位置越近越好。 从客户机把代码迁移到服务器(例如,客户应用程序需要运行大量与数据库服务器操作有关的代码)从

18、服务器下载代码到客户机(例如,Java Applet)n分布式系统进程迁移与虚拟化迁移的比较动机有类似的地方(负载均衡)实现机制和抽象层次不同 进程迁移:必须在相同的运行体系架构中进行(分布式节点具有相同的体系架构)、仅仅迁移进程。 虚拟机迁移:迁移应用程序及其运行基础环境运行基础环境(处理器状态、内存状态、网络状态、文件系统等),粒度更大,更能适应异构体系架构。虚拟化的一个应用实例:用户计算环境移动化 nISR项目 卡耐基梅隆大学和因特尔合作的基于虚拟机技术实现了用户计算环境的移动化。 场景:用户在家里挂起了一个系统,此时虚拟机的状态被保存到分布式文件系统中。随后,用户在旅游途中咖啡馆里,使

19、用笔记本通过分布式文件系统将原先挂起的系统恢复运行。 功能:ISR把每个用户的计算环境状态记录到一组被称为Parcel的文件里。用户计算环境状态包括:操作系统、应用程序、数据文件、个性内容、当前执行状态等。ISR功能结构虚拟化产品nVMWarenHyper-VnXennKVMESXnESX是VMware的企业级虚拟化产品,2001年开始发布ESX 1.0,到2011年2月发布ESX 4.1 Update 1。Page 34vSphere API存储网络安全性 设备ESX 4.0 组件概述VMkernel集群VM File System设备驱动程序存储栈vSwitch(数据 I/O 板)网络堆栈

20、Virtual SMPVMMVMMVMMVMM物理硬件物理硬件服务控制台服务控制台hostd管理代理和接口其他外围 I/O定期负载平衡器资源管理PSAESX虚拟化n虚拟机对于CPU和内存资源是通过VMkernel直接访问,最大程度的减少了开销,CPU的直接访问得益于CPU硬件辅助虚拟化(Intel VT-x和AMD AMD-V,第一代虚拟化技术),内存的直接访问得益于MMU(内存管理单元,属于CPU中的一项特征)硬件辅助虚拟化(Intel EPT和AMD RVI/NPT,第二代虚拟化技术)。n虚拟机对于I/O设备的访问则是有多种方式,以网卡为例,有两种方式可供选择,一是利用I/O MMU硬件辅

21、助虚拟化(Intel VT-d和AMD-Vi)的VMDirectPath I/O,使得虚拟机可以直接访问硬件设备,从而减少对CPU的开销;二是利用半虚拟化的设备VMXNETx,网卡的物理驱动在VMkernel中,在虚拟机中装载网卡的虚拟驱动,通过这二者的配对来访问网卡,与仿真式网卡(Intel E1000)相比有着较高的效率。nESX的物理驱动是内置在Hypervisor中,所有设备驱动均是由VMware预植入的,因此,ESX对硬件有严格的兼容性列表,不在列表中的硬件,ESX将拒绝在其上面安装。Page 36Hyper-VnHyper-V是微软新一代的服务器虚拟化技术,首个版本于2008年7月

22、发布,目前最新版本是2011年4月发布R2 SP1版,Hyper-V有两种发布版本,一是独立版,如Hyper-V Server 2008,以命令行界面实现操作控制,是一个免费的版本;二是内嵌版,如Windows Server 2008,Hyper-V作为一个可选开启的角色。Page 37Hyper-V虚拟化nHyper-V的Hypervisor仅实现了CPU的调度和内存的分配,而父分区控制着I/O设备,它通过物理驱动直接访问网卡、存储等,子分区要访问I/O设备需要通过子分区操作系统内的VSC(虚拟化服务客户端),对VSC的请求由VMBUS(虚拟机总线)传递到父分区操作系统内的VSP(虚拟化服务

23、提供者),再由VSP重定向到父分区内的物理驱动,每种I/O设备均有各自的VSC和VSP配对,如存储、网络、视频和输入设备等,整个I/O设备访问过程对于子分区的操作系统是透明的。其实在子分区操作系统内,VSC和VMBUS就是作为I/O设备的虚拟驱动,它是子分区操作系统首次启动时由Hyper-V提供的集成服务包安装,这也算是一种半虚拟化的设备,使得虚拟机与物理I/O设备无关。如果子分区的操作系统没有安装Hyper-V集成服务包或者不支持Hyper-V集成服务包,则这个子分区只能运行在仿真状态。nHyper-V的Hypervisor是一个非常精简的软件层,不包含任何物理驱动,物理服务器的设备驱动均是

24、驻留在父分区的Windows Server 2008中,驱动程序的安装和加载方式与传统Windows系统没有任何区别,因此只要是Windows支持的硬件,也都能被Hyper-V所兼容。Page 38XENnXEN最初是剑桥大学Xensource的一个开源研究项目,2003年9月发布了首个版本XEN 1.0,2007年Xensource被Citrix公司收购,开源XEN转由www.xen.org继续推进,该组织成员包括个人和公司(如Citrix、Oracle等),目前该组织在2011年3月发布了最新版本XEN 4.1。Page 39XENnXEN支持两种类型的虚拟机,一类是半虚拟化(PV,Par

25、avirtualization),另一类是全虚拟化(XEN称其为HVM,Hardware Virtual Machine)。半虚拟化需要特定内核的操作系统,如基于Linux paravirt_ops(Linux内核的一套编译选项)框架的Linux内核,而Windows操作系统由于其封闭性则不能被XEN的半虚拟化所支持,XENXEN的半虚拟化有个特别之处就是不要求的半虚拟化有个特别之处就是不要求CPUCPU具备硬件具备硬件辅助虚拟化,辅助虚拟化,这非常适用于2007年之前的旧服务器虚拟化改造。全虚拟化支持原生的操作系统,特别是针对Windows这类操作系统,XEN的全虚拟化要求CPU具备硬件辅助

26、虚拟化,它以修改的Qemu仿真所有硬件,包括:BIOS、IDE控制器、VGA显示卡、USB控制器和网卡等,为了提升I/O性能,全虚拟化特别针对磁盘和网卡采用半虚拟化设备来代替仿真设备,这些设备驱动称之为PV on HVM,为了使PV on HVM有最佳性能,CPU应具备MMU硬件辅助虚拟化。nXEN的Hypervisor层非常薄,少于15万行的代码量,不包含任何物理设备驱动,这一点与Hyper-V是非常类似的,物理设备的驱动均是驻留在Dom 0中,可以重用现有的Linux设备驱动程序,因此XEN对硬件兼容性也是非常广泛的,Linux支持的,它就支持。Page 40XENnA Xen syste

27、m is structured with the Xen hypervisor as the lowest and most privileged layer. Above this layer are “one” or “more” guest operating systems, which the hypervisor schedules across the physical CPUs. nThe first guest operating system called in Xen terminology a.k.a domain 0 (dom0), is booted automat

28、ically when the hypervisor boots and given special management privileges and direct access to the physical hardware. nSystem administrator can log into dom0 in order to manage any further guest operating systems, called domain U (domU) in Xen terminology.Page 41KVMPage 42KVMnOpen source software, fu

29、ll virtualization solution for Linux on x86 hardware, which containing virtualization extensions (Intel VT or AMD-V). nIt consists of a loadable kernel module:n“kvm.ko”, that provides the core virtualization infrastructure.n“kvm-intel.ko”, processor specific module for Intel CPU.n“kvm-amd.ko”, proce

30、ssor specific module for amd CPU.nKVM also requires a modified QEMU although work is underway to get the required changes upstream.nBy using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, d

31、isk, graphics adapter, etc.Page 43虚拟化产品比较n在稳定性方面,由于Vmware成熟时间长,商用化规模较大,其稳定性都得到了验证。n在通用性方面,Vmware支撑的虚机操作系统最多,但硬件兼容性不佳。n在可扩展性方面,Vmware和Hyper-V均有大规模的部署能力和实例,其他待验证。n在可管理性方面,Vmware Vcenter功能丰富,不仅是虚拟机管理,在网络、存储等方面均实现了统一管理,Hyper-V的SC系统可以从物理机到虚拟机统一管理。Page 44物理集群与虚拟化集群 n集群计算 Clustering Computingn物理集群:一组通过物理网络

32、互联的物理服务器。n虚拟集群:由多个客户虚拟机构成,这些客户虚拟机安装在由一个或多个物理集群构成的分布式服务器上。 例如,虚拟Hadoop集群n虚拟集群的特性虚拟集群节点可以是物理机器或虚拟机器,多个运行不同操作系统的虚拟机可部署在同一物理节点上。主机操作系统管理物理机器的资源,虚拟机器运行在其上,并可以运行与主机相异的操作系统。使用虚拟机的目的是合并同一台物理服务器的多个功能,提高服务器的资源利用率和应用的灵活性。虚拟机可在多个物理服务器上备份,以提供分布式并行度、容错性。虚拟集群的节点数可以动态增减。物理节点的失效会使得运行在其上的虚拟机也失效,但虚拟机失效不影响主机系统。多虚拟机服务器管

33、理软件Virtual Infrastructure虚拟化的优势应用场景n分离、合并、迁移、复制安全增强绿色计算、节约能耗HA高可用快速响应虚拟化适用范围不适合采用虚拟化的应用不适合采用虚拟化的应用n具有特殊硬件访问要求的应用n高性能图形显卡 - 不适用虚拟化 n特殊的串/并行加密设备 -不适用虚拟化nUSB设备连接需求 - 可能不适用,可采用外置USB设备代替,需经过测试n即使在高配置的服务器上仍然具有很高负载的应用 - 可能不适用,需分析当前服务器配置情况可以采用虚拟化的应用可以采用虚拟化的应用n除上述不适合采用虚拟化的应用之外的所有应用n可根据应用迁移的复杂程度决定虚拟化先后顺序n较易实现

34、P2V的应用可先做迁移,如可用Converter工具直接迁移的应用n较难或不能做P2V迁移的应用可考虑采用重新安装方式后迁n根据管理的需要决定是否做虚拟化n虚拟化转变过程对现有业务的影响程度n转变为虚拟化后对现有管理的影响程度n部门之间协调的难易程度虚拟化与云平台n虚拟化与云平台的关系 虚拟化技术是实现云平台的关键核心技术之一; 仅有虚拟化技术无法实现云平台,还需要: 资源监控、弹性提供、自动化部署、资源调度、动态迁移、计费、业务编排等功能n云平台的基础功能,以及对虚拟化方案的集成n云平台的选型天涯云计算平台 (蒋清野)虚拟化管理软件的评测和选型 搭建Eucalyptus开源云平台,并在其上面制作一个Ubuntu Linux镜像,能够利用该镜像文件启动一个虚拟机实例。THANK YOU!Page 56

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号