[发明专利]一种KVM虚拟化下处理I/O请求的方法和装置有效
申请号: | 201610019289.0 | 申请日: | 2016-01-12 |
公开(公告)号: | CN106970821B | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 张献涛;丁圣阁;田双太 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F3/038 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 赵娟 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 kvm 虚拟 处理 请求 方法 装置 | ||
本申请实施例提供了一种KVM虚拟化下处理I/O请求的方法和装置,其中所述方法包括:通过内核虚拟机KVM拦截虚拟机发出的I/O请求,确定与所述I/O请求对应的I/O通道的信息,其中,所述I/O通道具有对应的缓冲区,所述I/O通道的信息包括eventfd文件描述符;将所述I/O请求写入对应的I/O通道的缓冲区中;采用所述eventfd通知所述I/O通道对应的用户态进程;在所述用户态进程中,根据所述eventfd监听对应的I/O通道的事件,并从所述对应的I/O通道的缓冲区中获取I/O请求,对所述I/O请求执行I/O模拟,其中,所述用户态进程包括第一设备模拟进程以及与所述第一设备模拟进程独立的第二设备模拟进程。本申请可以在内核态中实现I/O请求的分发,针对单个虚拟机可以支持多个设备模拟进程,提高了I/O模拟的效率。
技术领域
本申请涉及KVM虚拟化的技术领域,特别是涉及一种KVM虚拟化下处理I/O请求的方法和一种KVM虚拟化下处理I/O请求的装置。
背景技术
虚拟机(Virtual Machine)是指通过软件模拟的、具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机。虚拟机可以像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。通常,虚拟机所在的物理计算机称为宿主机(Host),虚拟机自身称为虚拟机(Guest)。
KVM(Kernel-based Virtual Machine)即内核模式的虚拟机的简称,是一个开源的系统虚拟化模块,它使用Linux自身的调度器进行管理,KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD VT技术)。
在现有技术中,在KVM虚拟化中,当虚拟机发生I/O操作时,支持VMX(VirtualMachine eXtensions,是intel实现的x86指令集虚拟化扩展)或者SVM(Secure VirtualMachine,是amd实现的x86指令集的虚拟化扩展)扩展的CPU就会停止执行,退出非根模式,进入根模式执行KVM代码。KVM根据退出的原因得知虚拟机需要进行I/O操作,于是从内核态退出至用户态的QEMU进程。
QEMU进程在初始化的时候映射了一块KVM的空间,KVM在退出前把I/O请求放在其中,QEMU从中拿到I/O请求之后将其分发给相应的I/O模拟设备,I/O模拟设备执行I/O模拟以后,QEMU重新调用IOCTL进入KVM内核态,KVM稍作处理后进入非根模式继续运行vCPU(虚拟处理器)。
然而,发明人在实施上述I/O请求的模拟过程中,发现如下问题:
1、模拟vCPU的时候QEMU通过一个vCPU的IOCTL进入到KVM内核态,发生I/O请求的时候要退出内核态回到QEMU用户态的VCPU线程进行模拟,因此,I/O模拟必须和CPU模拟在同一个进程中,无法支持多个设备模拟进程。
2、KVM已有的基于eventfd的I/O通知机制只能应用于写请求,且对所写数据不关心,只关心所写地址的场景,例如Virtio设备的队列通知寄存器写访问。这种机制不能传递I/O请求访问的实际地址和长度,也无法将读操作得到的数据传递给KVM。
3、如果要在不同线程中实现CPU模拟和设备I/O模拟,现在缺乏一种机制来同步IO模拟线程和VCPU线程。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种KVM虚拟化下处理I/O请求的方法和相应的一种KVM虚拟化下处理I/O请求的装置。
为了解决上述问题,本申请公开了一种KVM虚拟化下处理I/O请求的方法,所述的方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610019289.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:代码存储方法及代码存储装置
- 下一篇:一种容器创建方法及装置