基于硬件支持的USB设备虚拟化框架研究
发布时间:2020-06-22 06:23
【摘要】:系统虚拟化在近年已成为学术界和产业界的热点。它通过在操作系统和硬件之间增加虚拟机监视器(VMM)一层,能在一台物理机上管理并运行多台客户机操作系统。每台客户机就像独自占有所有硬件资源,正如32位系统上的普通进程以为一直占有CPU和4G内存空间。它能高效管理各个客户机系统,实现客户机之间的有效隔离,既能增强资源利用率,又可以实现系统安全性。同时,虚拟化技术能在非停机的情况下高效地进行系统迁移,快照和克隆。这些特性使其能很好地应用于服务器整合,实现动态负载均衡,也方便进行灾难备份与恢复,以此提高系统的效率,可用性和安全性。 I/O虚拟化是系统虚拟化的重要部分。I/O设备种类繁多,厂商、型号、版本不一,驱动纷繁复杂,是整个虚拟系统普及应用的一大瓶颈。而增加VMM层后,设备和进程间的信号传递和数据传输变得更长更复杂,也极大的影响了系统性能。学术界中,Xen主要采用PV的方法,非特权级虚拟机中的驱动为前端,它请求I/O操作而不直接处理,以保证硬件的安全;特权级虚拟机中的驱动为后端,和I/O设备交互完成硬件操作并返回给前端。这种前后端模型可以解决虚拟机安全及I/O兼容性问题。但这需要修改操作系统本身,工作量浩大,且需要根据操作系统的升级而作相应修改。而KVM作为另一个热门的VMM,采用QEMU进行模拟。为每个虚拟机模拟出硬件所有的I/O设备,客户机访问QEMU中的设备模型,而不是真实的I/O设备。而QEMU调用VMM提供的服务,再把结果返回到设备模型。这样,VM就可以访问设备模型而获得操作结果。这会导致频繁的上下文切换和传输路径显著增长。它不需要对VM中的操作系统做修改,但性能很差。 硬件辅助技术能解决这些问题。借助Intel的VT-x技术,CPU执行模式除了用户态和内核态,还引进了根模式和非根模式。这样,与I/O相关的敏感指令很容易被截获,然后通过陷入再模拟的方法弥补X86构架原本存在的虚拟化漏洞。其次,EPT技术则使客户机的虚拟地址到宿主机的物理地址转换变得简单。而VT-d技术通过DMA重映射和I/O页表等方法,使得虚拟机和设备之间可以直接访问。使用这些硬件辅助技术,设计良好的I/O虚拟化技术能很方便地把I/O设备分配给虚拟机,无需修改操作系统并提供良好的访问效率,从而很好地解决上述问题。 本课题通过在Intel支持VT及VT-d硬件虚拟化的平台和KVM虚拟机上实现一种高性能的USB虚拟化方案,来研究最新的I/O虚拟化技术。该方案应用硬件辅助技术,将USB设备从VMM的中断向量中注销,并直接分配给虚拟机。这样,虚拟机可直接访问USB设备,获得很好的性能。它使得USB设备的虚拟化更为高效,它比QEMU的性能好,也不需要像PV的方法那样修改客户机操作系统。有助于虚拟化的商业应用与推广,同时对基于硬件支持的I/O虚拟化技术和虚拟机设计与应用提供借鉴和参考。 本文的主要创新点和意义有:1)研究了主流开源虚拟机监视器的构架和Intel VT及VT-d等硬件辅助虚拟化技术;2)研究了USB设备的驱动框架和虚拟化框架;3)把硬件辅助虚拟化技术应用到USB设备上,实现了USB设备的高效虚拟化;4)研究了USB3.0的一些特性。
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP334.7
【图文】:
商Intel公司VT技术和AMD公司SVM技术,也极大推动了系统虚拟化的发展。总体上讲,虚拟化技术可分为进程级虚拟化和系统级虚拟化[10],其模型如图1-1所示。本文主要研究基于KVM虚拟机监视器的系统级虚拟化,并专注于图 1-1 典 的进程级虚拟化框架和系统级虚拟化框架Fig.1-1 Typical process-level virtualization and system-level virtualizaiton
个主要方面:CPU 虚拟化,内存虚拟化和 I/O 虚拟化。然后三种重要模型:Hypervisor 模型,宿主模型和混合模型。最后主流系统虚拟机的构架,如 KVM、Xen 等。术综述技术实际上就是对下层的资源进行抽象,从而为上层按照需。而现代计算机系统自下而上可分为多个层次。图 2-1 显示了中的各个层次,分别为:硬件抽象层,操作系统层,库函数每层向上层提供一个抽象接口供其使用,上层只需知道层间下层的实现。传统计算机系统中,这种接口是一一对应的。发生变化导致接口发生变化,或者需要对下层多种资源进行多种应用需要不同的接口,或者上层需要的逻辑资源数和下等或动态变化,等等,导致接口存在差异或者上下层间的接,往往需要添加虚拟化层进行资源映射、调度、隔离,以提提高系统安全性。
本文编号:2725321
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP334.7
【图文】:
商Intel公司VT技术和AMD公司SVM技术,也极大推动了系统虚拟化的发展。总体上讲,虚拟化技术可分为进程级虚拟化和系统级虚拟化[10],其模型如图1-1所示。本文主要研究基于KVM虚拟机监视器的系统级虚拟化,并专注于图 1-1 典 的进程级虚拟化框架和系统级虚拟化框架Fig.1-1 Typical process-level virtualization and system-level virtualizaiton
个主要方面:CPU 虚拟化,内存虚拟化和 I/O 虚拟化。然后三种重要模型:Hypervisor 模型,宿主模型和混合模型。最后主流系统虚拟机的构架,如 KVM、Xen 等。术综述技术实际上就是对下层的资源进行抽象,从而为上层按照需。而现代计算机系统自下而上可分为多个层次。图 2-1 显示了中的各个层次,分别为:硬件抽象层,操作系统层,库函数每层向上层提供一个抽象接口供其使用,上层只需知道层间下层的实现。传统计算机系统中,这种接口是一一对应的。发生变化导致接口发生变化,或者需要对下层多种资源进行多种应用需要不同的接口,或者上层需要的逻辑资源数和下等或动态变化,等等,导致接口存在差异或者上下层间的接,往往需要添加虚拟化层进行资源映射、调度、隔离,以提提高系统安全性。
【引证文献】
相关硕士学位论文 前1条
1 朱圣才;KVM虚拟机串口转发器的研究与实现[D];成都理工大学;2012年
本文编号:2725321
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2725321.html