第七讲虚拟化技术.ppt_第1页
第七讲虚拟化技术.ppt_第2页
第七讲虚拟化技术.ppt_第3页
第七讲虚拟化技术.ppt_第4页
第七讲虚拟化技术.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七讲 虚拟化技术,7.1虚拟化技术概述,全球最过剩的资源是计算资源,计算机利用率严重不足,全球计算资源的平均利用率仅为9。 计算机调查研究,1.目前的IT设备应用现状,尽管我们需要越来越多数量及功能强大的计算机,可是我们却不得不承认,现有的计算机资源利用率是非常低的。且不说机器在晚上基本上是闲置,就是工作的时间里,我们的计算机的资源利用率也是非常低的,7.1虚拟化技术概述,2020/9/8,4,9-9-1原则,9,90%的服务器,90%的时间,CPU占用率低于10%,9,1,7.1虚拟化技术概述,“Enterprises that do not leverage virtualization

2、 will pay up to 40 percent more in acquisition costs by 2008, and roughly 20 percent more in administrative costs”,Quotes from: The Future of Server Virtualization, T. Bittman, Gartner* Research Note, July 2003.,Performance,“Virtualization technologies will increase the ability to effectively consol

3、idate to larger servers. Virtualization technologies will also make distributed small servers easier to manage, re-provision and use efficiently.”,Cost,“截止2008年,不能充分利用虚拟化技术的企业将会多支付40%的 采购成本和20%左右的管理成本。” 服务器虚拟化的未来,Gartner,有一种技术!,7.1虚拟化技术概述,1965年,为了更好的理解多程序操作系统,IBM研究中心开发了一台并发的交互式访问主机7044,使用分区方式在该机器的每个

4、部分建立一个7044镜像,称为7044/44X,这就是虚拟机概念的开端。 随着硬件价格的下降和多用户多任务操作系统的出现,虚拟技术在7080年代几乎销声匿迹。 进入90年代,随着服务器技术和操作系统的发展以及人们对资源利用率低下的不满,原本在大型机上出现的虚拟机技术再次进入人们的视野,2.虚拟化技术发展,7.1虚拟化技术概述,2020/9/8,大趋势:IT架构整合与虚拟化,智能化的信息网络的构建,加速了即将到来的虚拟化趋势,而后者将成为提升国家和企业机构竞争力的关键。 虚拟化代表着这样一个巨大趋势,就是把物理资源转变为逻辑上可以管理的资源,从而打破了物理结构之间的壁垒,将IT资源的利用率达到最

5、大化。 在社会和经济的所有领域,虚拟技术都在改变着我们开展日常活动的方式。,2.虚拟化技术发展,7.1虚拟化技术概述,2020/9/8,3.业界对虚拟化的定义,“虚拟化”是表示计算机资源的逻辑组(或子集)的过程,就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。” Wikipedia 虚拟化是资源的逻辑表示,它不受物理限制的约束。,7.1虚拟化技术概述,2020/9/8,虚拟化技术架构,传统架构,虚拟化架构,将一台服务器当做N台服务器来使用,硬件层,应用程序,操作系统,7.虚拟化技术应用范围,整合计算资源: 将多台利用率较低的服务器上的

6、负载整合到少数几台或一台服务器上; 提高资源的利用率,节省硬件、管理和维护的成本。 创建多个操作系统或运行环境: 在同一台服务器上创建多个不同的系统或运行环境; 动态调整每个系统的最大资源占用量及调度优先级; 提高服务质量。,7.1虚拟化技术概述,硬件及其配置的虚拟: 为运行在其上的应用程序提供底层物理机器所没有的硬件及其配置,如SCSI驱动、多处理器、网络接口等。 应用和服务的无缝、动态迁移: 应用和服务的无缝动态迁移、备份、恢复变得更加快速简便和易管理; 有利于实现系统的可靠性和可用性; 实现动态负载均衡,提高资源利用率。,7.虚拟化技术应用范围,7.1虚拟化技术概述,构建可信计算平台:

7、虚拟机之间以及虚拟机和虚拟抽象层之间是安全隔离的,某个虚拟机的崩溃不会影响其他虚拟机的正常运行。 可以将不可信的应用程序放到一个单独的虚拟机中运行,以防止故障和错误的蔓延,消除对其他程序可能造成的影响,7.虚拟化技术应用范围,7.1虚拟化技术概述,2020/9/8,改善可靠性 降低维护和补丁造成的宕机时间; 在软件、硬件故障时候快速备份恢复系统; 轻松部署高可靠性服务器集群。 自动化管理更加轻松 减少开通、配置、补丁、恢复的维护时间,增强安全性、隔离性; 可允许自动管理维护更加人性化。,7.1虚拟化技术概述,虚拟化:简单高效的IT管理模型,5.虚拟化的主要应用,分区 在一个物理机上运行多个OS

8、 更充分利用服务器资源 支持高可用分区之间可以组建集群(负载均衡、双机容错),封装 将虚拟机封装成与硬件配置无关的文件 随时对虚拟机进行快照 通过简单的文件拷贝对虚拟机进行迁徙,隔离 从硬件层面隔离系统故障和安全威胁 在虚拟机之间动态的分配CPU、内存等系统资源 保证服务可用,5.虚拟化的主要应用,7.1虚拟化技术概述,虚拟化技术主要为了解决如何让软件应用与底层硬件实现分离。例如X86的机器能够运行Mac OS系统以及应用。 主要目的是为了让同一台物理服务器可以运行多个应用系统,从而提升物理服务器的利用率。 例如上面的例子,原来每个机器的利用率只有20%,但各自运行着Windows NT、Wi

9、ndows Server 2003以及Linux,通过虚拟化技术使得中间的服务器能够同时承载不同的OS,从而可以运行不同的应用,提升利用率(中间服务器利用率达到70%),降低能耗(两边的服务器可以关机)。并且可以实现不同应用的数据隔离。,5.虚拟化的主要应用,7.1虚拟化技术概述,5.虚拟化的主要应用,7.1虚拟化技术概述,在云计算模式中的应用,技术模式 裂分:将具有富余资源的服务器裂变为配置不同的虚拟机,提高资源利用率 聚合:将性能有限的普通服务器聚合为虚拟大服务器,提供高性能计算,富余资源服务器,资源稀缺的服务器,资源强大的虚拟服务器,应用,虚拟机,(1)裂分,(2)聚合,关键技术:虚拟化

10、,Amazon、IBM IaaS、PaaS、SaaS均可以利用这种技术模式建立,关键技术:分布式存储和并行计算,Google 主要适用于PaaS和SaaS的服务提供,7.2 虚拟化模式,虚拟化有很多不同的实现模式,但是它们有一个共同点,就是模拟一个指令集的概念。 每个虚拟机都有一个用户可以访问的指令集,虚拟机把这些虚拟指令“映射”到计算机的实际指令集。 按照虚拟指令集所处的位置的不同,几种不同的虚拟化实现模式: 硬分区:硬件支撑 硬件模拟:虚拟机实现方式 操作系统模拟:虚拟机实现方式,7.2虚拟化技术模式,硬件虚拟化 (Hypervisors) 虚拟硬件访问 创建多个虚拟硬件实例 宿主操作系统

11、及每个Guest必须为完整操作系统 Parallels Server, VMware ESX, Microsoft Hyper-V,操作系统虚拟化 (Containers) 虚拟操作系统访问 创建多个虚拟操作系统实例 物理服务器拥有单个、标准的OS 内核 Parallels Virtuozzo Containers,Sun Solaris Containers, OpenVZ,7.2.1 硬分区实现模式,是指在硬件级上提供对虚拟化技术的支持 在硬件层,由硬件制造商提供分区功能 虚拟层位于硬件和操作系统之间 在虚拟层之上可以运行多个不同类型操作系统 从实现粒度可分为 部件级的硬分区 芯片级的硬分

12、区,7.2 虚拟化技术模式,1. 部件级的硬分区,是指将服务器的主要构成部件:处理器、内存和I/O等进行划分组合,分隔成多个块,每个块拥有不同数量的处理器、内存和I/O等部件,每个块就构成了一个硬件分区。 HP和Sun等厂商提供了这种部件级的硬分区方案 服务器上采用MBB(Modular Building Block)架构 MBB由多个BB(Building Block)构成,Sun称之为Board,HP称之为Cell,7.2 虚拟化技术模式,1.部件级的硬分区,每个BB可包含4路CPU、若干内存和I/O卡。不同BB内的CPU可以有不同的时钟频率。 所有的BB通过Crossbar Switch

13、交换机制连接在一起 采用MBB技术可以比较容易地设计出拥有更多数量CPU的服务器。在这种服务器上既可以运行一个操作系统,也可以在一个或多个BB上运行多个操作系统。基于MBB技术的服务器是由多个BB构成的,所以具有物理分区的特性。,7.2 虚拟化技术模式,2.芯片级的硬分区,芯片级的虚拟化技术是一种更底层的虚拟化技术 Intel的Vanderpool AMD的Pacifica,虚拟化硬件支撑技术,7.2 虚拟化技术模式,1)Intel的Vanderpool,Vanderpool虚拟技术包括 支持IA-32处理器的VT-x 支持Itanium结构的VT-I,7.2 虚拟化技术模式,VT-x,为IA

14、-32处理器增加了一个扩展指令集(extra instruction set),代号为Virtual Machine Extensions,简称VMX VMX提供了10条新的虚拟指令:VMPTRLD、VMPTRST、VMCLEAR、VMREAD、VMWRITE、VMCALL、VMLAUCH、VMRESUME、VMXOFF和VMXON 在VT-x技术下有两种工作模式: 根(root)模式和非根(non-root)模式 增加了一种新的数据结构virtual-machine control structure (VMCS)来对这两种工作模式及其相互间的转换进行管理。,7.2 虚拟化技术模式,VT-x

15、(续),只有虚拟控制软件VMM (Virtual Machine Monitor)工作在根模式 实际的硬件平台通过VMM与各虚拟机打交道 VMM是建立在处理器、芯片组硬件平台上的一层系统软件 作用:允许多操作系统共享共同的硬件平台,允许应用程序不经修改即能运行在多VM环境中 进入/结束虚拟模式:首先要执行VMXON指令,然后才能成为VMM软件;使用VMXOFF指令 进入/退出每一个虚拟机:VMM软件能够通过VMLAUNCH指令进入虚拟机;使用VMRESUME指令退出,7.2 虚拟化技术模式,2)AMD的Pacifica,与Intel的Vanderpool在目的和实现上类似 Pacifica对使

16、用直连架构的AMD64技术进行扩展 加入了新的工作模式Guest Mode、新的指令VMRUN以及对Guest Mode进行管理的新的数据结构VMCB (Virtual Machine Control Block),7.2 虚拟化技术模式,2)AMD的Pacifica(续),虚拟化主要基于VMRUN指令来实现 主机通过执行VMRUN指令进入客户机模式,客户机指令流运行结束后退出并返回主机模式 主机在VMRUN之后恢复其之前的指令流 Pacifica与Vanderpool最主要的不同是它加入了新的内存模式Real Mode w/ Paging,并在内存控制器上增加了虚拟功能部件 这将带来一定的性

17、能提升,不过也造成了Pacifica将与Intel的Vanderpool不兼容,7.2 虚拟化技术模式,7.2.2 硬件模拟,硬件模拟模式是发生在硬件抽象层的一种虚拟化实现技术 目前,国内外大部分通过软件方式实现的虚拟化技术都是基于此种实现方式,虚拟层是用软件实现的对底层硬件资源的抽象 VMM为其上层的虚拟机提供了虚拟处理器和其它虚拟设备,如:I/O设备、内存、存储资源等 VMM同时也提供了各虚拟机之间的隔离特性 根据虚拟程度的不同,硬件虚拟模式又可分 全虚拟 半虚拟,7.2 虚拟化技术模式,1.全虚拟(Pure Virtualization),VMM(Virtual Machine Moni

18、tor)提供对底层硬件的完全模拟 为上层虚拟机提供一套API接口,这些接口是底层硬件平台接口的完全拷贝 优点: 虚拟机上的操作系统可以是任意类型;用户安装和使用方便;可以支持多种标准的设备接口,兼容性好 对上层OS和应用程序透明:虚拟机中的操作系统和应用对于真实的机器一无所知。可以利用宿主OS提供的CPU调度、资源管理、设备驱动以及其他服务 缺点: 是以软件的方式完全模拟硬件,会带来性能上的巨大开销,尤其是I/O操作的开销 目前,较有代表性的基于全虚拟模式的虚拟机软件有:VMWare、Virtual Server、 QEmu 和Bochs等,7.2 虚拟化技术模式,架构,VMware,Virt

19、ual Server,7.2 虚拟化技术模式,VMWare虚拟机,为运行于虚拟设备的操作系统映像提供了一整套虚拟的x86兼容硬件 虚拟硬件虚拟了真正服务器所拥有的全部设备 主板芯片集、CPU、内存、SCSI和IDE磁盘设备、端口以及显示设备 每个虚拟机都被封装到一个文件中,因此可以实现工作负载的无缝移植,VMware需要安装在HostOS之上,称这种结构为“Hosted Architecture” VMware虚拟层将物理硬件资源映射成虚拟机的硬件资源,因此每个虚拟机都拥有自己的符合标准x86结构的CPU、内存、磁盘、I/O设备,7.2 虚拟化技术模式,VMware包括三个部分 VMX驱动、V

20、MM和VMware应用程序VMApp VMX和VMM运行在内核空间,VMApp运行在用户空间 VMware并不完全运行在用户空间 VMX驱动安装在HostOS内以便获得VMM运行所需要的特权级别 当虚拟机运行时,VMApp通过VMX驱动将VMM装载到内核,对于普通指令,虚拟机通过VMM直接在CPU上执行 对于特权指令,如I/O指令 需要被VMM转换成HostOS中的读写文件高级系统调用,并通过VMApp在HostOS中被调用 调用结果返回给VMM,并最终返回给GuestOS和应用程序,虚拟软件:基于Host OS,向上提供虚拟硬件,7.2 虚拟化技术模式,VMware 优点: 使用方便,用户可

21、以像安装普通应用程序那样在HostOS上安装VMM 借助HostOS,可以支持多种标准x86结构的设备,兼容性好 可以利用HostOS提供的CPU调度、资源管理、设备驱动以及其他服务 VMware缺点: I/O虚拟开销很大 对于虚拟机的每一次I/O请求,VMM都要将控制权交给HostOS,然后通过用户空间程序VMApp来访问I/O设备,得到结果后再将控制权返回给VMM 在服务器环境下,这种开销是难以接受的 VMM没有给虚拟机提供性能隔离和资源保证的支持,一定程度上有违虚拟技术的初衷,7.2 虚拟化技术模式,2.半虚拟(para-virtualization),提供给上层虚拟机一套高级API来代

22、替底层硬件平台的低级API 与全虚拟不同 当运行一个虚拟机时,这套高级API大大减少了用户模式(user mode)和特权模式(supervisor mode)的切换次数 大大降低了运行时开销,提高虚拟的效率 需要修改客户OS 增加了开发成本 兼容性较差 较有代表性的基于半虚拟模式的虚拟机软件有:Xen、UML(User Mode Linux)和Denali等。,7.2 虚拟化技术模式,架构,Xen,SWsoft,7.2 虚拟化技术模式,1)Xen,从低层次上提供了一种和底层硬件相似但并不完全相同的虚拟机抽象,处于真实硬件之上的是Xen Hypervisor 提供了虚拟的硬件接口和Domain

23、0控制接口 Xen不包含驱动程序 降低了复杂性,减少了代码量,7.2 虚拟化技术模式,完成一些高级的操作如:创建、终止和迁移其他的Domain 控制其他Domain的调度参数、物理内存分配、物理磁盘和网络设备的访问 设置网络过滤和路由规则 监控每个Domain的网络活动(包、流量) 创建和删除虚拟网络接口和块设备,Xen在设计上采用了策略和机制相分离的思想 Hypervisor只提供一些最基本的控制操作 每一个虚拟机称之为一个Domain 在Domain上运行的OS称之为Guest OS Domain0是一个初始Domain,在系统启动时自动创建,通常称之为Host OS,是一个应用级的管理程

24、序 只有Domain0才可以通过Hypervisor提供的控制接口使用Hypervisor的基本控制操作,虚拟软件:包含Host OS;直接向上提供虚拟硬件,7.2 虚拟化技术模式,Xen允许Guest OS在一定程度上直接访问硬件,如对硬件页表进行读操作 正是由于这个原因,需要对虚拟机上运行的OS内核进行修改 避免了Guest OS 直接运行特权指令,同时也安全地与应用隔离 x86结构支持从0到3四种不同的权限级别,称之为rings 一般操作系统运行在ring 0,应用程序运行在ring 3,ring 1和ring 2没被使用 Xen修改Guest OS 使其运行在ring 1上,Hyper

25、visor运行在ring 0(最高权限级别)上,普通应用程序仍运行在ring 3上 Xen并没有修改Guest OS的ABI(Application Binary Interface,应用程序二进制接口),所以应用程序不需要作任何修改就可以直接在Guest OS上运行,7.2 虚拟化技术模式,2)Denali,是为了支持数以千计的运行着网络服务的虚拟机而设计的 这些网络服务中绝大部分是小规模的应用 Denali的半虚拟化技术与Xen不同 首先,Denali不需要关注现有的ABI,因此它的VM接口忽略掉了相关的架构特征 其次,Denali的实现没有解决在单个guestOS中支持多个应用的问题,也

26、没有解决多地址空间的问题,应用被显式地链接到guestOS实例上,因此每个虚拟机只能操控一个单用户单应用的没有保护措施的所谓的“操作系统” 再次,在Denali体系结构中,是由虚拟层VMM执行全部的内存与磁盘间的页面调度的。这可能是与虚拟层缺乏存储管理支持有关 最后,Denali为机器的全部资源虚拟了“名字空间”。这样的话,如果一个虚拟机不能够“叫出”另一个虚拟机下辖的资源的名字,那么该虚拟机就不能够访问这些资源。,7.2 虚拟化技术模式,7.2.3 基于OS,基于共用操作系统原理,提供一个瘦的VMM体系架构。 但其占用的系统资源比较少,开销小,几乎不影响应用程序的运行 各虚拟机共享底层硬件及

27、OS,虚拟层为每个虚拟机进行按需分区,每个分区实际上是底层操作系统的一个复制品,主要限制在于它不支持在一台物理服务器实现多种操作系统 代表性的基于操作系统虚拟化模式的虚拟机软件有:Solaris-zones、OpenVZ、Linux Vservers和FreeBSD Jails等。,7.2 虚拟化技术模式,1)Solaris Zone,基于OS的虚拟化技术 在Solaris系统内可划分多个分区,每个分别独立运行Solaris实例 实例可多达8000个 每个分区被称之为Zone 有Global Zone和 Non-global Zone之分 Non-global zone 由 Global Zo

28、ne负责建立和管理 每一个Zone都有自己的名字和唯一ID Non-global Zone和Global Zone共享一个Solaris内核,7.2 虚拟化技术模式,Global Zone是系统默认的Zone 负责全局资源的分配以及配置、安装、管理和卸载Non-global Zone 提供了一个包含所有硬件组件的完整的数据库,另外在这个数据库中,同时还包含了某些特定给Global Zone使用的信息,如Global Zone的主机名和文件系统表 是唯一一个可以看到所有设备和文件系统的Zone 每个Solaris Non-global Zone 有自己的root用户密码和用户的资料, 有自己文件

29、系统空间、网络资源 只能看见自己的Zone里面的进程 Non-global Zone彼此之间不会知道互相的存在 在一个Non-global Zone里面不可以对另一个Non-global Zone进行删除、关机、启动等操作等 使得操作系统环境更为安全 Non-global Zone可以包含从Global Zone里面分享出来的Package,也可以有自己独立的不是通过Package方式安装的附加的软件,7.2 虚拟化技术模式,2)OpenVZ,是SWSoft公司服务器虚拟化解决方案的开源项目 是其商业产品Virtuozzo的子集 OpenVZ可以将一台物理服务器动态分割为数百个拥有完整独立主机

30、功能的虚拟服务器(Virtual Private Server, VPS),并可对其资源进行实时再分配和集中管理 OpenVZ中的VPS总是运行在同一个作为主系统的内核上 这种单内核实现技术使得运行VPS只需极小的负载 提供比传统虚拟技术更高效更易管理的方案 OpenVZ特点: 在用户看来,VPS与一个真正的Linux操作系统没什么区别,VPS有标准的启动脚本,第三方软件无须任何修改即可运行在VPS中 VPS完全彼此隔离(文件系统、进程、进程间通信、系统控制变量) VPS不是基于单个CPU,能充分利用所有的CPU资源 每个VPS有自己的IP、防火墙、路由表等,在网络方面彼此完全独立 OpenV

31、Z能够有效控制每个VPS所使用的资源,如:CPU、磁盘空间、内存容量等,7.2 虚拟化技术模式,其它的一些虚拟化技术: HP和Sun等厂商提供的部件级的硬分区方案 以Softricity SoftGrid、Trigence AE、Meiosys MetaCluster为代表的应用层虚拟化技术等。,7.2 虚拟化技术模式,7.3 虚拟化发展趋势,支持虚拟化技术成为新一代服务器硬件的普遍趋势 CPU 支持Intel VT技术和AMD SVM技术的CPU种类在持续增加,IBM的PowerPC等。 虚拟化的效率因此将得到大幅度的提升 I/O虚拟化技术的发展 I/O MMU (I/O Memory Ma

32、nagement Unit, I/O MMU)是内存管理单元,负责管理I/O设备对于系统内存的访问,可以提供I/O设备的地址转换和隔离功能 传统的x86平台未提供硬件的I/O MMU,造成了虚拟机软件,例如VMware和Xen只能利用软件的方法实现I/O MMU的功能。,英特尔在2006年发布了Intel VT-d (Intel Virtualization for Directed I/O)的规范草案,属于I/O MMU规范,可以减少I/O虚拟化的开销。 最新的版本是2007年5月发布的1.0版本的正式规范。 AMD相应的技术规范叫做AMD I/O 虚拟化技术(IOMMU)规范(AMD I/

33、O Virtualization Technology (IOMMU) Specification) 目前最新的版本是2007年5月发布的1.20版。预计支持硬件I/O MMU的x86芯片组会在2007年上市。 利用该项技术,可以支持虚拟机直接访问硬件设备,提高虚拟机I/O操作的性能。 目前,Xen、VMware、微软和其它的虚拟软件提供商正在努力开发基于这些I/O MMU规范的产品,从而更好地支持I/O虚拟化操作。,7.3 虚拟化发展趋势,虚拟化技术发展的新契机,对系统虚拟化提供硬件支持的新技术 Intel :VT技术 AMD :SVM技术 属于虚拟化辅助技术,从处理器的级别提供对虚拟化的支持,可以简化VMM的设计 针对多核虚拟化技术,7.3 虚拟化发展趋势,7.4 其他几个例子,将多个物理计算机用商品化网络互连,基于虚拟化技术,实现可扩展SMP机器。用户和Guest OS看到的是一个虚拟SMP机器。 用户应用程序可不加修改 Guest OS为通用SMP OS,1.如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论