虚拟化实现技术
系统虚拟化架构
处理器虚拟化实现技术
内存虚拟化实现技术
I/O虚拟化实现技术
2
系统虚拟化架构
系统虚拟化的核心思想,是指用虚拟化技术将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统。虚拟环境由三部分组成:硬件、VMM和虚拟机。在没有虚拟化的情况下,物理机操作系统直接运行在硬件之上,管理着底层物理硬件,构成了一个完整的计算机系统。当系统虚拟化之后,在虚拟环境里,每个虚拟计算机系统都通过自己的虚拟硬件(如处理器、内存、I/O设备及网络接口等),来提供一个独立的虚拟机执行环境。通过虚拟化层的模拟,虚拟机中的操作系统认为自己独占一个系统。
第2章虚拟化实现技术
图2-1 系统虚拟化
第2章虚拟化实现技术
虚拟机的三个典型特征:
同质:虚拟机的运行环境和物理机的运行环境在本质上是相同的,但是在表现上有一些差异。
高效:虚拟机中运行的软件必须和直接在物理机上运行的软件性能接近。为了实现这点,当软件在虚拟机中运行时,大多数的指令需直接在硬件上执行,只有少量指令需要经过VMM处理或模拟。
资源受控:VMM需要对系统资源有完全控制能力和管理权限,包括资源的分配、监控和回收。
第2章虚拟化实现技术
特权指令:
系统中操作和管理关键系统资源的指令。在现代计算机体系结构中,都有两个或两个以上的特权级,用来区分系统软件和应用软件。特权指令只能够在最高特权级上正确执行,如果在非最高特权级上执行,特权指令就会引发一个异常,使得处理器陷入到最高特权级,交由系统软件来处理。在不同的运行级上,不仅指令的执行效果不同,而且也并不是每个特权指令都能够引发异常。
第2章虚拟化实现技术
敏感指令:
虚拟化世界里操作特权资源的指令,包括修改虚拟机的运行模式或者物理机的状态,读写敏感的寄存器或者内存。例如时钟、中断寄存器、访问存储保护系统、内存系统,地址重定位系统以及所有的I/O指令。
由此可见,所有的特权指令都是敏感指令,但并非所有的敏感指令都是特权指令。
第2章虚拟化实现技术
虚拟环境的实现步骤:
将VMM运行在系统的最高特权级上,而将客户机操作系统运行在非最高特权级上。此时,当客户机操作系统因执行敏感指令(此时,也就是特权指令)而陷入到VMM时,VMM模拟执行引起异常的敏感指令,这种方法被称为“陷入再模拟”。
第2章虚拟化实现技术
处理器虚拟化实现技术
全虚拟化和半虚拟化。全虚拟化可以采用二进制代码动态翻译技术(Dynamic Binary Translation)来解决客户机的特权指令问题,这种方法的优点在于代码的转换工作是动态完成的,无需修改客户机操作系统,因而可以支持多种操作系统。而半虚拟化通过修改客户机操作系统来解决虚拟机执行特权指令的问题,被虚拟化平台托管的客户机操作系统需要修改其操作系统,将所有敏感指令替换为对底层虚拟化平台的超级调用。
第2章虚拟化实现技术
图2-2 x86系统结构下的处理器虚拟化
第2章虚拟化实现技术
vCPU:
硬件虚拟化采用 vCPU(virtual CPU,虚拟处理器)描述符来描述虚拟CPU。vCPU本质是一个结构体,以Intel VT-x为例,vCPU一般可以划分为两个部分:一个是VMCS结构(Virtual Machine Control Structure,虚拟机控制结构),其中存储的是由硬件使用和更新的内容,这主要是虚拟寄存器。一个是VMCS没有保存而由VMM使用和更新的内容,主要是VMCS以外的部分。
第2章虚拟化实现技术
(KVM虚拟化技术基础与实践)第2章虚拟化实现技术 来自淘豆网m.daumloan.com转载请标明出处.