[发明专利]通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动有效
申请号: | 201210527643.2 | 申请日: | 2012-12-10 |
公开(公告)号: | CN103870311A | 公开(公告)日: | 2014-06-18 |
发明(设计)人: | 唐明 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通过 虚拟 驱动 访问 硬件 方法 后端 前端 | ||
技术领域
本发明涉及虚拟机技术领域,特别是涉及一种通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动。
背景技术
所谓Xen虚拟化技术分为三层:最底层为拥有最高特权级别的虚拟机监控器(Hypervisor),其直接运行于硬件之上,负责其上的虚拟机的内存分配和运行调度;往上为拥有直接操作底层硬件权限且唯一存在的特权虚拟机(Dom0),其为系统中运行的第一个虚拟机,负责其他非特权虚拟机(DomU)的管理;非特权虚拟机(DomU)没有直接操作硬件的权限,每个系统可以同时运行多个DomU,每个DomU对外表现为一个标准的物理机。
在虚拟化环境下,若干DomU运行在同一物理机上,出于系统安全方面的考虑,DomU不能直接访问物理机上的各种物理设备(例如:网卡、磁盘设备等),而由Dom0通过模拟指令完成访问。但是,对于磁盘设备、网络设备等I/O访问非常频繁的物理设备而言,仅靠指令模拟的方式来访问硬件,其性能无法满足实际应用的需要。为了解决DomU通过模拟指令访问硬件性能差的问题,当前主要有两种方式用于提升虚拟机IO特性:(1)直接将物理机上真实的硬件透传给指定的DomU,相当于给予了指定的DomU直接操作硬件的特权;(2)采用半虚拟化驱动的方式。
其中,半虚拟化驱动由前端驱动和后端驱动组成。所谓前端驱动为运行在DomU内核态的驱动程序,其负责创建虚拟设备,并且转发虚拟设备的I/O请求;所谓后端驱动为运行在Dom0内核态的驱动程序,其负责接收前端驱动转发的I/O请求,并且通过真正的设备驱动来访问物理设备,进而完成I/O请求;并且Hypervisor通过提供事件通道、授权表和I/O共享环缓冲区等技术来帮助前端驱动和后端驱动进行通信。其中,半虚拟化驱动方式对应的虚拟架构如图1所示。
现有技术中,半虚拟化驱动的基本IO流程为:
前端驱动接收到DomU内核下发的网络数据,从I/O共享环中取出一个I/O请求;
前端驱动从授权表中申请授权项,在该授权项里填充该网络数据所在内存资源的伪物理地址,再将该授权项对应标识填充到上一步取出的I/O请求中;
在虚拟机监控器的作用下,前端驱动通过事件通道向后端驱动发送事件通知;
后端驱动通过事件通道接收前端驱动发送的事件通知;
后端驱动从I/O共享环中取出前端驱动放入的I/O请求;
后端驱动查询授权表,确定I/O请求中所填充的标识对应的该伪物理地址;
通过共享内存技术,后端驱动查询到DomU中该伪物理地址所对应的物理地址,并将该物理地址通过本地伪物理地址映射到自身的本地虚拟地址,此后后端驱动通过访问该本地虚拟地址便能直接访问前端驱动接收到的网络数据;
后端驱动将该网络数据发送给真实的设备驱动来访问物理设备,完成I/O请求;
后端驱动接收到真实的设备驱动发回的响应,将其放入I/O共享环,并解除对前端驱动共享内存资源的映射关系,通过事件通道向前端驱动发送事件通知;
前端驱动通过事件通道接收到后端驱动发送的事件通知;
前端驱动从I/O共享环中取出响应进行处理,并回收共享内存资源。
上述IO流程中,关键步骤在于:Dom0通过共享内存技术,将DomU指定的内存资源映射到自身的内存空间中,从而直接访问到DomU的内存资源,实现内存共享,最终完成网络数据从DomU转发到Dom0的过程。
其中,每次由DomU向外界传输数据时,都需要将DomU中携带数据的内存资源动态映射给Dom0,由Dom0使用完数据之后再解除映射关系。由于每次I/O请求都涉及到共享内存的动态映射和解映射,当网络负载很高时,该方式需要频繁地更新伪物理地址到物理地址的映射关系,且每次更新都涉及到系统从Dom0切换到Hypervisor完成映射和解映射,这种频繁的切换导致虚拟机网络时延增长,同时CPU占用率较高。
发明内容
本发明实施例提供了一种通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动,以降低虚拟机网络时延及CPU占用率,技术方案如下:
第一方面,从特权虚拟机的后端驱动的角度,本发明实施例提供了一种通过半虚拟化驱动访问硬件的方法,适用于物理机上,所述物理机包括:虚拟机监控器、设置有后端驱动的特权虚拟机以及至少一设置有前端驱动的非特权虚拟机,其中,所述虚拟机监控器通过至少提供事件通道、授权表和I/O共享环协助所述前端驱动和所述后端驱动进行通信;所述方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210527643.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:绵筋纸
- 下一篇:一种隔音毡的超快速成型装置及其应用