系统虚拟化技术介绍计算机科学与技术学院2010/04/01系统虚拟化介绍ContentsVMM(VirtualMachineMonitor)系统虚拟化丰富多彩的虚拟化虚拟化概念的内涵实现系统虚拟化的任务2/222010/04/01系统虚拟化介绍广泛的虚拟化概念虚拟内存虚拟服务器网络虚拟化微处理器虚拟化文件虚拟化存储虚拟化更广泛环境中或更高级抽象——任务虚拟化和信息虚拟化3/222010/04/01系统虚拟化介绍虚拟化概念的内涵抽象:虚拟化是资源的逻辑表示具体:在系统中加入虚拟化层,将下层资源抽象成另一种形式供上层使用硬件硬件抽象操作系统API抽象函数库应用程序API抽象:创建新进程,内存申请、归还,进程同步、共享,文件系统和网络操作。硬件抽象:CPU各寄存器,内存管理模块,I/O端口,内存映射,I/O地址。4/222010/04/01系统虚拟化介绍丰富多彩的虚拟化Host(宿主)通常做为物理资源的定语。如将一个物理计算机虚拟为一个或多个虚拟计算机,则这个物理计算机通常被称为宿主机两个重要概念Guest(客户)通常做为虚拟出来的资源的定语。如将一个物理计算机虚拟为一个或多个虚拟计算机,则其上进行的虚拟机通常被称为客户机5/222010/04/01系统虚拟化介绍丰富多彩的虚拟化硬件抽象层的虚拟化操作系统层的虚拟化库函数层的虚拟化编程语言层的虚拟化硬件硬件抽象操作系统API抽象函数库应用程序6/222010/04/01系统虚拟化介绍丰富多彩的虚拟化硬件抽象层的虚拟化——VMware,Xen通过虚拟硬件抽象层来实现虚拟机,为客户操作系统呈现相同或相近的硬件抽象层通常宿主机和客户机指令集(ISA)相同,其他部分如中断控制器,设备等可以完全不同操作系统层的虚拟化——Linux(Vserver)操作系统的内核可以提供多个相互隔离的用户态实例,独立的文件系统,网络系统设置和库函数非常高效,虚拟化资源的性能开销小,不需硬件特殊支持,但灵活性较小,容器间比较粗粒度的隔离7/222010/04/01系统虚拟化介绍丰富多彩的虚拟化库函数层的虚拟化——WINE(windows)库函数—操作系统提供给应用程序的一组服务,如文件操作服务,时间操作服务等库函数虚拟化—虚拟操作系统的应用级库函数,使应用程序能够跨平台运行编程语言层的虚拟化——JVM,CLR语言虚拟机,运行进程级别的作业针对的不是硬件上存在的体系结构,而是一个虚拟的体系结构,运行时由支持系统翻译为硬件上的机器语言再执行8/222010/04/01系统虚拟化介绍系统虚拟化系统虚拟化是指将一台物理计算机虚拟化为一台或多台虚拟计算机系统。客户机拥有独立的虚拟硬件客户机操作系统独占一个系统运行客户机操作系统可以完全不同,并完全独立硬件硬件抽象虚拟化层(VMM)虚拟硬件抽象层操作系统应用程序虚拟硬件抽象层操作系统应用程序9/222010/04/01系统虚拟化介绍系统虚拟化1974年,Popek和Goldberg二人定义:虚拟机可以看作是物理机的一种高效隔离的复制三层意思:同质,高效和资源受控同质是指虚拟机的运行环境和物理机环境在本质上需要是相同的,但表现可以不同高效是指虚拟机中运行的软件需要有接近物理机上直接运行的性能资源受控是指VMM需要对系统资源有完全控制能力和管理权限,包括资源的分配监控和回收10/222010/04/01系统虚拟化介绍系统虚拟化的好处特权功能封装性多实例隔离硬件无关性系统虚拟化系统虚拟化的好处11/222010/04/01系统虚拟化介绍系统虚拟化的任务处理器虚拟化内存虚拟化I/O虚拟化特权指令系统中一些操作关键资源的指令被认定为特权指令,只有在最高级才能正确执行。特权指令都是敏感指令敏感指令操作特权资源的指令,如修改虚拟机的运行模式及物理机状态。读写敏感的是寄存器或内存。敏感指令不都是特权指令。VMM不允许VM直接执行敏感指令系统虚拟化可虚拟化架构不可虚拟化架构12/222010/04/01系统虚拟化介绍处理器虚拟化中断及异常的注入对称多处理器技术的模拟指令的模拟定义虚拟寄存器和虚拟处理器,利用上下文进行虚拟处理器的调度切换。其宗旨都是让虚拟机里执行的敏感指令陷下来后能被VMM模拟,而不要直接运行于真实硬件上VMM对于异常的虚拟化需要完全遵照物理处理器对于各种异常条件的定义,再根据虚拟处理器当时的内容,来判断是否需要模拟出一个虚拟的异常,并注入到虚拟环境中13/22VMM选择第一个虚拟处理器做BSP,其他虚拟处理器为AP,把所有处理器都初始化为某种状态。当启动初始到某个时刻,AP需要收到某种初始化信号被唤醒2010/04/01系统虚拟化介绍客户机操作系统认为内存是连续的或至少是大粒度连续(大于等于256M)客户机操作系统认为内存都是从0开始的GPA=f1(GVA)HPA=f2(GPA)HPA=f2(f1(GVA))内存虚拟化问题1问题2解决14/222010/04/01系统虚拟化介绍I/O虚拟化I/O虚拟化设备共享设备模拟访问截获设备发现15/222010/04/01系统虚拟化介绍VMM的功能和组成物理资源管理BECDA处理器管理内存管理中断管理设备管理系统时间维护16/222010/04/01系统虚拟化介绍VMM的功能和组成虚拟资源管理BCDA资源虚拟化模块虚拟环境的调度虚拟机通信机制虚拟化环境的管理接口17/222010/04/01系统虚拟化介绍VMM的功能和组成其他模块BECDA软件定时器多处理器同步原语调试手段安全机制与电源管理性能采集与分析18/222010/04/01系统虚拟化介绍VMM分类——虚拟平台分类完全虚拟化软件辅助的完全虚拟化•优先级压缩•二进制代码翻译硬件辅助的完全虚拟化•Intel-VT、AMD-V类虚拟化19/222010/04/01系统虚拟化介绍VMM分类——实现结构分类宿主模型混合模型Hyper-visorHyperVisorDMDRPMGuestOSGuestOS应用应用DM:设备模型;DR:设备驱动;P:处理器管理代码;M:内存管理代码20/222010/04/01系统虚拟化介绍典型虚拟化产品VMwareVMwareESXServer,VMware(GSX)Server,VMwareWorkstation,VMwareFusionMicrosoftVirtualServer,WindowsServer2008,VirtualPC,SoftGrid,TerminalService,WindowsStorageServer,网络虚拟化等。XenKVM(Kernel-basedVirtualMachine)基于IntelVT技术,并基于QEMU21/22Clicktoeditcompanyslogan.