预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共25页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN105700826A(43)申请公布日2016.06.22(21)申请号201511028575.5(22)申请日2015.12.31(71)申请人华为技术有限公司地址518129广东省深圳市龙岗区坂田华为总部办公楼(72)发明人陆丽娜(74)专利代理机构北京龙双利达知识产权代理有限公司11329代理人王君刘爱平(51)Int.Cl.G06F3/06(2006.01)权利要求书4页说明书12页附图8页(54)发明名称虚拟化方法和装置(57)摘要本发明实施例提供了一种虚拟化方法,该方法包括转发进程轮询虚拟NVMe设备的门铃doorbell区域;当doorbell区域发生变化时,转发进程调用虚拟NVMe驱动,从doorbell区域发生变化的发送队列中,获取虚拟机下发的NVMe命令,NVMe命令包括读写请求;转发进程调用虚拟NVMe驱动,解析NVMe命令,得到通用读写请求。本发明实施例的虚拟化方法和虚拟化装置,通过独立的转发进程完成虚拟NVMe设备的读写操作,并且该转发进程使用轮询的方式替代原有的定时器方式,能够避免Qemu锁竞争,同时能够解决时延长的问题,从而实现了一种高性能低时延的NVMe虚拟化方法,提高了NVMe设备的访问速度。CN105700826ACN105700826A权利要求书1/4页1.一种虚拟化方法,其特征在于,所述方法由物理机Host执行,所述Host包括虚拟机和数据平面的转发进程,所述数据平面的转发进程包括虚拟非易失性内存扩展NVMe驱动,所述虚拟机包括虚拟NVMe设备,所述方法包括:所述转发进程轮询所述虚拟NVMe设备的门铃doorbell区域;当所述doorbell区域发生变化时,所述转发进程调用所述虚拟NVMe驱动,从所述doorbell区域发生变化的发送队列中,获取所述虚拟机下发的NVMe命令,所述NVMe命令包括读写请求;所述转发进程调用所述虚拟NVMe驱动,解析所述NVMe命令,得到通用读写请求;所述转发进程获取物理设备对所述通用读写请求的处理结果;所述转发进程调用所述虚拟NVMe驱动,将所述物理设备的处理结果封装为NVMe响应;所述转发进程调用所述虚拟NVMe驱动,将所述NVMe响应添加到与所述发送队列对应的完成队列中。2.如权利要求1所述的方法,其特征在于,所述Host还包括基于内核的虚拟机管理程序KVM模块,在所述转发进程调用所述虚拟NVMe驱动,将所述NVMe响应添加到与所述发送队列对应的完成队列中之后,所述方法还包括:所述转发进程调用所述虚拟NVMe驱动,通过eventfd向所述KVM模块发送中断请求;所述KVM模块根据所述中断请求向所述虚拟机注入中断;所述虚拟机从所述完成队列中,获取所述NVMe响应。3.如权利要求1或2所述的方法,其特征在于,所述Host还包括快速模拟器Qemu进程,所述Qemu进程包括适配驱动,在所述转发进程轮询所述虚拟NVMe设备的doorbell区域之前,所述方法还包括:所述转发进程调用所述虚拟NVMe驱动,根据用户请求创建所述虚拟NVMe设备;所述转发进程调用所述虚拟NVMe驱动,分配所述Qemu进程与所述转发进程的共享内存空间,所述共享内存空间包括所述doorbell区域;所述Qemu进程调用所述适配驱动,将所述共享内存空间映射到所述虚拟NVMe设备的第一段基址寄存器BAR空间;所述Qemu进程调用所述适配驱动,将基于消息通知的多路中断机制MSIX表空间映射到所述虚拟NVMe设备的第二段BAR空间;所述Qemu进程调用所述适配驱动注册回调函数。4.如权利要求3所述的方法,其特征在于,在所述转发进程调用所述虚拟NVMe驱动,分配所述Qemu进程与所述转发进程的共享内存空间之前,所述方法还包括:所述转发进程调用所述虚拟NVMe驱动,根据用户请求创建所述虚拟NVMe设备的命名空间namespace;所述转发进程调用所述虚拟NVMe驱动,初始化所述虚拟NVMe设备的namespace信息,以便于所述虚拟机读取所述虚拟NVMe设备的所述namespace信息;所述转发进程调用所述虚拟NVMe驱动,根据用户请求将所述虚拟NVMe设备的名称作为参数配置,挂载给所述虚拟机。5.如权利要求3或4所述的方法,其特征在于,在所述Qemu进程调用所述适配驱动注册回调函数之后,所述方法还包括:2CN105700826A权利要求书2/4页所述转发进程轮询所述虚拟NVMe设备的doorbell区域;当所述doorbell区域的0号命令队列中包括创建所述完成队列的请求时,所述转发进程调用所述虚拟NVMe驱动,从所述0号命令队列中获取所述虚拟机下发的NVMe命令;所述转发进程调用所述虚拟NVMe驱动解析所述NVMe命