您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 虚拟化技术初步(12-02-24).
虚拟化技术郑伟平2011-7-26Page2虚拟化技术内容1虚拟化定义2虚拟化分类3全虚拟化与半虚拟化4虚拟化实现5虚拟化技术比较与选型6虚拟化带来的好处7虚拟化带来的问题8虚拟化适用范围9服务器虚拟化过程虚拟化是什么从某种意义上讲,计算机的历史是不断虚拟化的历史。虚拟技术通过标准的界面(ISA,API等)屏蔽底层复杂性。计算领域中的虚拟化是创建某种计算资源的虚拟版本的方法和过程。虚拟化对计算机资源的用户(应用程序或终端用户)隐藏了它们的物理特性。虚拟化可以将一种抽象接口转换成另外一种抽象接口。Page3虚拟化技术的复兴多任务操作系统/硬件价格下降导致问题机器数量的泛滥导致资源利用率低操作系统的复杂性导致其脆弱性一台机器运行一个应用程序带来的问题硬件需求增加,资源利用率低增加了硬件费用、管理和能源负担虚拟化技术的其他好处--易管理--提高安全性和可靠性Page4虚拟化定义虚拟化是指对物理资源的逻辑表示(而非简单的抽象),通常是将一组物理资源虚拟为多组逻辑资源,或者将多组物理资源虚拟为一组逻辑资源。Virtualizationisthecreationofavirtual(ratherthanactual)versionofsomethingintheareaofcomputing,suchasanoperatingsystem,aserver,astoragedeviceornetworkresources.Page5虚拟化的动机Page6“计算系统利用率不高!“多数用户承认,计算系统平均利用率只有25%~30%”性能测试报告,来自权威性能测试机构Metron’sAthenePage7虚拟化的目标Page8系统虚拟化是将底层物理设备与上层操作系统、软件分离的一种去耦合技术虚拟化的目的是实现IT资源利用效率和灵活性的最大化去耦合:软件与硬件去耦合;应用程序与操作系统去耦合虚拟化概念Page9通过虚拟化软件套件模拟的、具有完整硬件功能的、运行在一个隔离环境中的逻辑计算机系统虚拟机虚拟机里的操作系统客户操作系统虚拟机的存储实体,它通常是一个或多个文件,包括虚拟机的配置信息和磁盘数据,还可能包括内存数据虚拟镜像虚拟机要仿真的真实机器,即与虚拟机对应的真实平台本地机提供完整的系统环境,可支持操作系统及用户进程。只要系统环境存在的,虚拟机就为操作系统提供支持。系统虚拟化包括了预安装、预配置的操作系统、中间件和应用的最小化的虚拟机虚拟器件Page10虚拟化技术内容1虚拟化定义2虚拟化分类3全虚拟化与半虚拟化4虚拟化实现5虚拟化技术比较与选型6虚拟化带来的好处7虚拟化带来的问题8虚拟化适用范围9服务器虚拟化过程虚拟化分类Page11服务器虚拟化服务器虚拟化技术本质上是由虚拟机监视器(VirtualMachineMonitor,VMM)对底层资源进行模拟和划分,向上层表现出多组虚拟计算资源,支持多个虚拟计算环境。VMM是整个虚拟系统的核心,它承担了资源的管理、分配和调度,保证多个虚拟机能够相互隔离,各自运行自己的操作系统(OS)。编程语言级虚拟化:典型代表JAVA,一次编写多平台运行。操作系统虚拟化:Cygwin,wineISA层虚拟化:采用软件模拟指令集的实现方式,截获客户操作系统(GuestOS)发出的指令,把这些指令翻译成系统所在的硬件平台上可以识别的指令。硬件虚拟化:分为全虚拟化和半虚拟化,以及硬件辅助的虚拟化。Page12两种典型的VMM体系结构Page13例如:ESXServer依赖虚拟层内核代理和帮助应用的服务控制台例如:GSXServer,虚拟化Server,Workstation安装和运行应用程序依赖于主机操作系统对设备的支持和物理资源的管理寄居架构(HostedArchitecture)裸金属架构(“BareMetal”Architecture)两种典型的VMM体系结构Page15虚拟化技术内容1虚拟化定义2虚拟化分类3全虚拟化与半虚拟化4虚拟化实现5虚拟化技术比较与选型6虚拟化带来的好处7虚拟化带来的问题8虚拟化适用范围9服务器虚拟化过程全虚拟化与半虚拟化全虚拟化:全虚拟化技术的本质是利用二进制代码动态翻译技术,动态地重写虚拟机的执行代码,在需要VMM监控和模拟的位置插入陷入指令。这里所提及的陷入指令指的就是当客户操作系统执行到一些特权指令时,就把这些指令陷入到VMM中,由VMM监控和模拟执行,并把模拟结果返回给客户操作系统,避免多个客户操作系统之间因资源竞争发生冲突。该技术的优势在于用户操作系统能够不经修改直接在虚拟机上运行,其缺点是动态翻译带来一定的性能开销。半虚拟化:半虚拟化技术通过修改客户操作系统的源代码,将需要监控的操作替换为对VMM的超级调用(Hypercall),实质上,在这种虚拟化方式下,VMM向客户操作系统呈现的不是经过虚拟化的虚拟资源,而是访问硬件资源的抽象API。该技术的优势在于虚拟机能够在硬件上直接运行,使客户操作系统能获得接近直接在裸机上运行的性能,其缺点是需要修改客户操作系统的源代码,使虚拟机上使用的操作系统类型受到限制,现有的一些参考文献对比了在某一种虚拟机产品(如Xen)上修改不同类型操作系统(Windows,Linux)的源代码的工作量的差异性。Page16硬件辅助的虚拟化硬件厂商通过改进其硬件设备来提供对虚拟化的支持。典型的例子是x86处理器的两大生产Intel和AMD。其基本思想是引入新的指令和处理器运行模式,使得VMM和GuestOS运行在不同的模式下,GuestOS只能在受控的模式下运行,当需要由VMM进行监控和模拟时,由硬件支持模式的切换。硬件虚拟化支持使得GuestOS能够直接运行在物理硬件上,提高了虚拟化性能,也极大的方便了VMM的设计和开发。IntelVT-x:4个特权级AMDSVMIntelVT-dIntelVT-cPage17Page18虚拟化技术内容1虚拟化定义2虚拟化分类3全虚拟化与半虚拟化4虚拟化实现5虚拟化技术比较与选型6虚拟化带来的好处7虚拟化带来的问题8虚拟化适用范围9服务器虚拟化过程虚拟机实现:VCPU虚拟CPU(VCPU)VMM按照其权重随机加入每个物理核的运行队列每个时刻一个VCPU映射至一个物理核,实现初级安全隔离机制提供VCPU的pin机制,使得某个VCPU固定运行于某个物理核Page19内存虚拟化VMM将VM中的虚拟物理内存连续地址映射至非连续的物理内存空间通过虚拟物理内存向物理内存的映射页表机制实现初级内存安全隔离虚拟机可以通过共享内存进行通信Page20I/O虚拟化VMM将不同虚拟机磁盘分区分别映射至物理磁盘通过文件系统的功能实现虚拟机对磁盘I/O的初级安全隔离虚拟机可以共享文件系统文件,系统可以动态地在不同虚拟机mount/unmountPage21关键:云计算管理平台自动化部署能力迁移能力弹性提供能力资源监控能力资源调度能力计费度量、业务管理能力Page22Page23虚拟化技术内容1虚拟化定义2虚拟化分类3全虚拟化与半虚拟化4虚拟化实现5虚拟化技术比较与选型6虚拟化带来的好处7虚拟化带来的问题8虚拟化适用范围9服务器虚拟化过程虚拟化技术选型:ESXESX是VMware的企业级虚拟化产品,2001年开始发布ESX1.0,到2011年2月发布ESX4.1Update1。Page24vSphereAPI存储网络安全性设备ESX4.0组件概述VMkernel集群VMFileSystem设备驱动程序存储栈vSwitch(数据I/O板)网络堆栈VirtualSMPVMMVMMVMMVMM物理硬件服务控制台hostd管理代理和接口其他外围I/O定期负载平衡器资源管理PSAESX虚拟化虚拟机对于CPU和内存资源是通过VMkernel直接访问,最大程度的减少了开销,CPU的直接访问得益于CPU硬件辅助虚拟化(IntelVT-x和AMDAMD-V,第一代虚拟化技术),内存的直接访问得益于MMU(内存管理单元,属于CPU中的一项特征)硬件辅助虚拟化(IntelEPT和AMDRVI/NPT,第二代虚拟化技术)。虚拟机对于I/O设备的访问则是有多种方式,以网卡为例,有两种方式可供选择,一是利用I/OMMU硬件辅助虚拟化(IntelVT-d和AMD-Vi)的VMDirectPathI/O,使得虚拟机可以直接访问硬件设备,从而减少对CPU的开销;二是利用半虚拟化的设备VMXNETx,网卡的物理驱动在VMkernel中,在虚拟机中装载网卡的虚拟驱动,通过这二者的配对来访问网卡,与仿真式网卡(IntelE1000)相比有着较高的效率。ESX的物理驱动是内置在Hypervisor中,所有设备驱动均是由VMware预植入的,因此,ESX对硬件有严格的兼容性列表,不在列表中的硬件,ESX将拒绝在其上面安装。Page26虚拟化选型:Hyper-VHyper-V是微软新一代的服务器虚拟化技术,首个版本于2008年7月发布,目前最新版本是2011年4月发布R2SP1版,Hyper-V有两种发布版本,一是独立版,如Hyper-VServer2008,以命令行界面实现操作控制,是一个免费的版本;二是内嵌版,如WindowsServer2008,Hyper-V作为一个可选开启的角色。Page27Hyper-V虚拟化Hyper-V的Hypervisor仅实现了CPU的调度和内存的分配,而父分区控制着I/O设备,它通过物理驱动直接访问网卡、存储等,子分区要访问I/O设备需要通过子分区操作系统内的VSC(虚拟化服务客户端),对VSC的请求由VMBUS(虚拟机总线)传递到父分区操作系统内的VSP(虚拟化服务提供者),再由VSP重定向到父分区内的物理驱动,每种I/O设备均有各自的VSC和VSP配对,如存储、网络、视频和输入设备等,整个I/O设备访问过程对于子分区的操作系统是透明的。其实在子分区操作系统内,VSC和VMBUS就是作为I/O设备的虚拟驱动,它是子分区操作系统首次启动时由Hyper-V提供的集成服务包安装,这也算是一种半虚拟化的设备,使得虚拟机与物理I/O设备无关。如果子分区的操作系统没有安装Hyper-V集成服务包或者不支持Hyper-V集成服务包,则这个子分区只能运行在仿真状态。Hyper-V的Hypervisor是一个非常精简的软件层,不包含任何物理驱动,物理服务器的设备驱动均是驻留在父分区的WindowsServer2008中,驱动程序的安装和加载方式与传统Windows系统没有任何区别,因此只要是Windows支持的硬件,也都能被Hyper-V所兼容。Page28虚拟化选型:XENXEN最初是剑桥大学Xensource的一个开源研究项目,2003年9月发布了首个版本XEN1.0,2007年Xensource被Citrix公司收购,开源XEN转由继续推进,该组织成员包括个人和公司(如Citrix、Oracle等),目前该组织在2011年3月发布了最新版本XEN4.1。Page29XENXEN支持两种类型的虚拟机,一类是半虚拟化(PV,Paravirtualization),另一类是全虚拟化(XEN称其为HVM,HardwareVirtualMachine)。半虚拟化需要特定内核的操作系统,如基于Linuxparavirt_ops(Linux内核的一套编译选项)框架的Linux内核,而Windows操作系统由于其封闭性则不能被XEN的半虚拟化所支持,XEN的半虚拟化有个特别之处就是不要求CPU具备硬件辅助虚拟化,这非常适用于2007年之前的旧服务器虚拟化改造。全虚拟化支持原生的操作系统,特别是针对Windows这类操作系统,XEN的全虚拟化要求CPU具备硬件辅助虚拟化,它以修改的Qemu仿真所有硬件,包括:BIOS、IDE控制器、VG
本文标题:虚拟化技术初步(12-02-24).
链接地址:https://www.777doc.com/doc-2026550 .html