赞
踩
在详细学习ovirt之前,建议了解一些基本虚拟化的基本概念。
虚拟化相关概念
oVirt(Open Virtualization Manager)是一款免费开源虚拟化软件,是RedHat商业版本虚拟化软件RHEV的开源版本。
oVirt基于kvm,并整合使用了libvirt、gluster、patternfly、ansible等一系列优秀的开源软件。
一个标准的oVirt部署架构应包括如下三个主要部分:
其中engine有一个认证服务(组件),用来实现用户和管理员的认证。
主机节点是安装有vdsm和libvirt组件的linux发行版
可以使用块存储或文件存储,也可以是利用主机节点自身的存储做存储节点。,或者使用外部的存储,例如通过NFS访问,或者是IP-SAN/FC-SAN。还有一种就是超融合架构,通过gluster将主机节点自身的磁盘组成池来使用,同时能够实现高可用和冗余。
主要组件:
客户操作系统与虚拟机监视器共同构成了虚拟机系统的两级调度框架。客户操作系统负责第2 级调度,即线程或进程在VCPU 上的调度(将核心线程映射到相应的虚拟CPU上)。虚拟机监视器负责第1 级调度, 即VCPU在物理处理单元上的调度。两级调度的调度策略和机制不存在依赖关系。VCPU调度器负责物理处理器资源在各个虚拟机之间的分配与调度,本质上即把各个虚拟机中的VCPU按照一定的策略和机制调度在物理处理单元上可以采用任意的策略来分配物理资源, 满足虚拟机的不同需求。VCPU可以调度在一个或多个物理处理单元执行(分时复用或空间复用物理处理单元), 也可以与物理处理单元建立一对一固定的映射关系(限制访问指定的物理处理单元)。
因为VMM (Virtual Machine Monitor) 掌控所有系统资源,因此VMM 握有整个内存资源,其负责页式内存管理,维护虚拟地址到机器地址的映射关系。因Guest OS本身亦有页式内存管理机制,则有VMM的整个系统就比正常系统多了一层映射:
映射关系如下:Guest OS: PA = f(VA)、VMM: MA = g(PA)
VMM 维护一套页表,负责PA 到MA 的映射,Guest OS 维护一套页表,负责VA 到PA 的映射。
实际应用时,用户访问VA的地址,会经过Guest OS页表转成PA的地址,然后由VMM页表最终转换成MA的地址。
页表虚拟化技术原理
由于每个虚拟机访问内存都得经过两次转换,效率非常低,几乎不具有实际可用性,为实现虚拟地址到机器地址的高效转换,现普遍采用的思想是:由VMM根据映射f和g生成复合的映射fg,并直接将这个映射关系写入 MMU。当前采用的页表虚拟化方法主要是MMU类虚拟化(MMU Paravirtualization)和影子页表,后者已被内存的硬件辅助虚拟化技术所替代。
由于每个虚拟机访问内存都得经过两次转换,效率非常低,所以为了高效转换,出现了MMU技术。
原理:当Guest OS创建一个新的页表时,会从它所维护的空闲内存中分配一个页面,并向VMM注册该页面,VMM会剥夺Guest OS对该页表的写权限,之后Guest OS对该页表的写操作都会陷入到VMM加以验证和转换。VMM会检查页表中的每一项,确保他们只映射了属于该虚拟机的机器页面,而且不得包含对页表页面的可写映射。后VMM会根据自己所维护的映射关系,将页表项中的物理地址替换为相应的机器地址,最后再把修改过的页表载入MMU。如此,MMU就可以根据修改过页表直接完成虚拟地址到机器地址的转换。
原理是:GVA(客户操作系统的虚拟地址)-> GPA(客户操作系统的物理地址)-> HPA(宿主操作系统的物理地址)两次地址转换都由CPU硬件自动完成(软件实现内存开销大、性能差)。
通过截获 Guest OS对I/O设备的访问请求,然后通过软件模拟真实的硬件,目前I/O设备的虚拟化方式主要有三种:设备接口完全模拟、前端/后端模拟、直接划分。
即软件精确模拟与物理设备完全一样的接口,Guest OS驱动无须修改就能驱动这个虚拟设备,Vmware即使用此方法。
优点:没有额外的硬件开销,可重用现有驱动程序;
缺点:为完成一次操作要涉及到多个寄存器的操作,使得 VMM 要截获每个寄存器访问并进行相应的模拟,这就导致多次上下文切换;由于是软件模拟,性能较低。
VMM 提供一个简化的驱动程序(后端, Back-End),Guest OS中的驱动程序为前端 (Front-End, FE),前端驱动将来自其他模块的请求通过与Guest OS间的特殊通信机制直接发送给Guest OS的后端驱动,后端驱动在处理完请求后再发回通知给前端,KVM即采用该方法。
优点:基于事务的通信机制,能在很大程度上减少上下文切换开销,没有额外的硬件开销;
缺点:需要VMM实现前端驱动,后端驱动可能成为瓶颈。
即直接将物理设备分配给某个 Guest OS,由Guest OS直接访问I/O设备(不经 VMM),目前与此相关的技术有IOMMU(Intel VT-d, PCI-SIG 之 SR-IOV 等),旨在建立高效的I/O虚拟化直通道。
优点:可重用已有驱动,直接访问减少了虚拟化开销;
缺点:需要购买较多额外的硬件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。