虚拟化技术agenda•虚拟化技术概述•基本虚拟化技术•硬件对虚拟化的支持•VMware虚拟化技术秘密▲认识虚拟化指令仿真全虚拟化半虚拟化操作系统虚拟化LIB库仿真低高性能QEMUKVM/VmwareXenVServerWine计算机系统硬件操作系统程序库应用程序指令集合ISA系统调用SysCall应用编程接口API秘密▲虚拟化技术的历史资源池IBM推出虚拟化技术,提高了昂贵的大型机的利用率;VMware公司解决了X86虚拟化问题,推出了X86平台的虚拟机软件,使虚拟化技术开始走向普通用户。开源虚拟化技术Xen推出,使虚拟化技术的研究和应用更加普及;Intel和AMD推出支持虚拟化技术的处理器和芯片组,实现了硬件辅助虚拟化技术;1960‘s199920032005Amazon采用虚拟化技术提供云计算平台,取得了商业上的成功,虚拟化技术成为云计算的基石;2006虚拟化技术将物理资源转化为便于切分的资源池,符合云计算的基本条件;虚拟化给资源以动态调配的能力,符合云计算按需分配的要求;秘密▲虚拟化前虚拟化后虚拟化将硬件、操作系统和应用程序一同封装一个可迁移的虚拟机档案文件中•软件必须与硬件相结合•每台机器只能运行单一的操作系统•每个操作系统有一个或多个应用程序负载(通常只有一个)•增加虚拟化层•裸金属架构•每台机器上有多个操作系统和多个应用负载未更改过的应用未更改过的OS虚拟硬件服务器虚拟化的基础概念秘密▲虚拟化计算系统体系结构虚拟机管理器VMM单计算系统虚拟化多计算系统虚拟化操作系统应用程序VMMVMMVMM…应用系统传统计算系统计算模式虚拟化计算系统计算模式应用系统应用系统应用系统操作系统操作系统操作系统操作系统8秘密▲虚拟技术:四大特性相对于硬件独立无需修改即可在任何服务器上运行虚拟机分区在单一物理服务器上同时运行多个虚拟机隔离在同一服务器上的虚拟机之间相互隔离封装整个虚拟机都保存在文件中,而且可以通过移动和复制这些文件的方式来移动和复制该虚拟机秘密▲虚拟化益处:实现资源最优利用通过虚拟化进行服务器整合优势:大大提高硬件利用率增加系统的可管理性简化服务器安装过程,节约时间50%~70%减少10倍或更多的硬件购买需求,节约一半的购买和维护成本虚拟机秘密▲虚拟化益处:动态负载均衡资源当VMM监测到某个计算节点的负载过高时,可以在不中断业务的情况下,将其迁移到其它负载较轻的节点或者在节点内通过重新分配计算资源执行紧迫计算任务的虚拟机得到更多的计算资源,保证关键任务的响应能力利用虚拟机与硬件无关的特性的虚拟机迁移技术,按需分配资源秘密▲虚拟化益处:系统自愈功能提升可靠性系统服务器硬件故障时,可自动重启虚拟机消除在不同硬件上恢复操作系统和应用程序安装所带来的困难,其中任何物理服务器均可作为虚拟服务器的恢复目标减少硬件成本和维护成本实现经济高效、独立于硬件和操作系统的应用程序高可用性秘密▲虚拟化益处:提升系统节能减排能力•与服务器管理硬件配合实现智能电源管理•优化虚拟机资源的实际运行位置,达到耗电最小化•可为运营商节省大量电力资源,减少供电成本,节能减排休眠秘密▲虚拟化技术的驱动力——IT成本的消减虚拟化技术能够显著提高硬件平台的利用率,节省50%以上的IT投资;硬件服务器的减少同时能够节省机房电力、空间和制冷方面的投入;IDC统计的每用户年度花费秘密▲虚拟化技术的驱动力——管理和可用性的提升虚拟机与物理服务器的隔离,使物理服务器的变化不波及虚拟机,简化了管理难度;虚拟机间能够提供对上层透明灾难恢复机制,灾难恢复过程简单灵活,能显著提高系统可用性;物理设备虚拟机OSApp虚拟机OSApp故障升级维护秘密▲数据中心整合案例整合之前整合之后服务器1,000台80台存储270TBDAS140TBSAN和NAS网络3,000个电缆/端口300个电缆/端口设备200个服务器机架400个电源开关10个服务器机架20个电源开关客户示例:领先的北美公共设施公司VMware对其产生的影响硬件成本节省数据中心空间、电力和制冷成本节省70-80%2年节省800万美元运营效率服务器重建和应用程序载入时间从20-40小时缩短到15-30分钟每年节省10,000工时agenda•虚拟化技术概述•基本虚拟化技术•硬件对虚拟化的支持•VMware虚拟化技术秘密▲VMM作为一个应用程序运行在主机操作系统上,兼容性好但效率低。虚拟化技术的关键组件——VMM组织架构HostOSVMMAPPGuestOS1AppGuestOS2ServiceOSVMMAPPGuestOS1APPGuestOS2HardwareHardwareOS-Hosted模式VMMAPPGuestOS1APPGuestOS2HardwareVMM又称为Hypervisor,负责为虚拟机统一分配CPU、内存和外设,调度虚拟资源;VMM直接运行在物理硬件上,效率更高,但硬件兼容性差。Stand-aloneHypervisor模式前两种方式的综合,VMM直接运行在物理硬件上,但驱动程序由ServiceOS提供。Hybrid模式秘密▲例如:ESXServer依赖虚拟层内核代理和帮助应用的服务控制台VMM组织架构举例——VMware产品虚拟化架构例如:GSXServer,VMwareServer,Workstation安装和运行应用程序依赖于主机操作系统对设备的支持和物力资源的管理寄居架构(HostedArchitecture)裸金属架构(“BareMetal”Architecture)秘密▲X86平台虚拟化的三种方式全虚拟化•客户操作系统运行在Ring1级,VMM运行在Ring0级,对于不能虚拟化的特权指令,通过二进制转换方式转换为同等效果的指令序列运行,而用户级指令可直接运行。•不需要修改操作系统,虚拟机具有较好的隔离性和安全性。半虚拟化•需要修改操作系统内核,将不能虚拟化的指令替换为hypercall,hypercall直接与虚拟层通信;•显著减少了虚拟化开销,性能较高,但是由于需要修改操作系统内核,对于非开放的操作系统,如windows2000/xp,则无法支持。硬件辅助虚拟化•CPU在Ring0级之下还提供了一个RootMode,VMM运行在RootMode下。特权指令自动被VMM捕获,不需要进行二进制转换或调用Hypercall;•效率较高,无需修改操作系统。•ZTE最新的刀片支持硬件辅助虚拟化。VMMAppRing3Ring2Ring1GuestOSRing0X86硬件平台通过Hypercall调用虚拟层操作用户指令直接执行AppRing3Ring2GuestOSRing1VMMRing0X86硬件平台对特权指令进行二进制转换用户指令直接执行VMMAppRing3Ring2Ring1GuestOSRing0X86硬件平台特权指令被VMM捕获,不需二进制转换用户指令直接执行非RootmodeRootmode秘密▲X86平台Fullvirtualization虚拟化技术客户操作系统运行在Ring1级,VMM运行在Ring0级,VMM提供给操作系统各种虚拟资源(虚拟BIOS、虚拟设备和虚拟内存管理等)。对于不能虚拟化的特权指令,通过二进制转换方式转换为同等效果的指令序列运行,而用户级指令可直接运行。客户操作系统与底层硬件资源完全隔离,操作系统不感知运行在虚拟机上,也不需要修改操作系统,虚拟机具有较好的隔离性和安全性。AppRing3Ring2GuestOSRing1VMMRing0X86硬件平台对特权指令进行二进制转换用户指令直接执行秘密▲X86平台Paravirtualization虚拟化技术这种方式需要修改操作系统内核,将不能虚拟化的指令替换为hypercall,hypercall直接与虚拟层通信,虚拟层提供内核操作的关键接口,如内存管理、中断处理和时间管理等。这样显著减少了虚拟化开销,性能较高,但是由于需要修改操作系统内核,对于非开放的操作系统,如windows2000/xp,则无法支持。VMMAppRing3Ring2Ring1GuestOSRing0X86硬件平台通过Hypercall调用虚拟层操作用户指令直接执行秘密▲X86平台硬件辅助虚拟化在Intel的VT-x技术中,CPU在Ring0级之下还提供了一个RootMode,VMM运行在RootMode下。特权指令自动被VMM捕获,不需要进行二进制转换或调用Hypercall。Intel还对外设提供了VT-d和VT-c等技术,提供对外设虚拟化的支持。VMMAppRing3Ring2Ring1GuestOSRing0X86硬件平台特权指令被VMM捕获,不需要二进制转换用户指令直接执行非RootmodeRootmode秘密▲内存虚拟化VMM通常采用分块共享的思想来虚拟计算机的物理内存。即将机器内存分配给虚拟机,并维护机器内存和虚拟机所见的“物理内存”的映射关系,使这些内存在虚拟机看来是从地址0开始、连续的物理地址空间秘密▲I/O设备虚拟化模式较高性能IO设备共享支持虚拟机迁移虚拟层过于复杂VMMSharedDevicesI/OServicesDeviceDriversVM0GuestOSandAppsVMnGuestOSandAppsMonolithicModel最高性能虚拟层更简洁需要设备支持共享迁移能力受影响AssignedDevicesVMMVM0GuestOSandAppsDeviceDriversVMnGuestOSandAppsDeviceDriversPass-throughModel高安全性IO设备共享支持虚拟机迁移性能受影响SharedDevicesI/OServicesVMMDeviceDriversServiceVMsVMnVM0GuestOSandAppsGuestVMsServiceVMModel秘密▲I/O设备虚拟化目前一些常见的VMM系统针对I/O设备虚拟化分别采用了不同的设计思路,比较典型的有:1)全虚拟化,2)半虚拟化,3)软件模拟全虚拟化半虚拟化软件模拟秘密▲虚实结合的I/O设备访问技术直接设备访问VMM-BypassI/O2006年IBM基于Xen实现了InfiniBand设备的直接I/O访问2006年佐治亚理工提出I/O设备自虚拟化(Self-Virtualization)概念IntelVT-d,AMDIOMMU,PCI-SIG的IOV规范从硬件层次上试图解决直接设备访问带来的隔离性问题,并支持设备的共享秘密▲开源虚拟机——XenXen是由剑桥大学计算机实验室发起的开源虚拟机项目;支持半虚拟化和全虚拟化(需要硬件支持);XenHypervisor是虚拟机管理器,负责CPU调度和内存分区,不负责网络和设备IO;Domain0,负责管理其他虚拟机,提供管理接口;DomainUDomainUPVGuest:半虚拟化虚拟机;DomainUHVMGuest:全虚拟化虚拟机;XenHypervisor的管理接口可通过Libxenctrl库调用,来实施管理功能;秘密▲基于Linux内核的虚拟机——KVMKVM嵌入到Linux内核中,利用Linux内核的调度和资源管理能力管理虚拟资源;在KVM下,每个虚拟机都是一个Linux进程,它按正常进程方式调度,内存也由Linux分配,也可以按普通进程进行管理。正常进程有核心和用户两种模式,KVM增加了guest模式,用于执行非IO的客户操作系统代码;KVM主要有两个组件:一个用来管理虚拟硬件的驱动程序,它体现为设备/dev/kvm;一个修改了的qemu进程,运行在用户空间,用来模拟PC硬件。秘密▲操作系统适配减少陷入,提高虚拟化性能VMware:idle被调度时,可以不切换页表VMware:通过修改GuestOS安装的网卡驱动,减少I/O指令和中断请求,提高虚拟网卡性能Xen:通过Hypercall陷入VMM,完成一组特权操作支持虚拟机管理:Vir