处理虚拟IO请求的方法和装置、电子设备和存储介质与流程
- 国知局
- 2024-10-21 14:30:00
本发明涉及虚拟化,特别涉及处理虚拟io请求的方法和装置、电子设备和存储介质。背景技术:::1、当前虚拟化环境下,采用软件实现的virtio(半虚拟化hypervisor中位于设备之上的抽象层)作为虚拟设备接口。hypervisor是一种虚拟化技术,其允许在一台物理计算机上运行多个虚拟机,并将它们隔离在不同的虚拟化环境中。虚拟机的每个虚拟设备驱动分为前端驱动和后端驱动。前端驱动运行在客户虚拟机上,接收上层标准框架的服务请求,转换成硬件逻辑请求,将这些请求发送到虚拟队列,再由vritio的管理进程统一调度,交给后端驱动处理。后端驱动运行在管理主机上,接收前端驱动发来的请求,转发交给物理设备处理,并把处理结果返回给前端驱动。当设备配置信息发生变化时,hypervisor会产生一个中断,virtio采用这种软中断方式通知前后端驱动同步数据。所有的虚拟队列共享这个中断。这种vritio的通讯有以下缺点。2、第一,当系统繁忙或者多个设备频繁发送请求时,会出现vritio管理进程调度繁忙情况,可能出现超时未响应或者延时调度的情况,io的实时性和可靠性无法保证。第二,为了兼容所有类型的virtio请求,virtio的上下文配置项很多。另外,virtio请求的数据buffer(暂时存放输入输出数据的内存)一般是物理地址不连续的虚拟地址。为了实现内存零拷贝,需要用sg_table(物理内存的散列表)的数据结构保存这块虚拟地址所对应的多块不连续物理地址的起始地址和长度等信息。每次请求要传递上下文配置和sg_table结构。然而,实际场景中,经常出现数据量小,要求快速传输的请求,比如fence同步、状态查询等等。对于这种快速io请求,事件通知等数据量小的场景,采用virtio机制,效率很低。技术实现思路1、本发明提供处理虚拟io请求的方法和装置、电子设备和存储介质,其能够优化虚拟io请求的处理过程,提高虚拟io请求的实时性和可靠性,并实现快速io请求的响应。2、在本发明的一个方面,提供一种处理虚拟io请求的方法。该方法包括:由前端驱动接收来自上层的第一请求,并将所述第一请求写入第一寄存器组以触发第一中断;由后端驱动根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备,以用于得到所述第一请求的请求处理结果;由所述后端驱动将所述请求处理结果写入第二寄存器组以触发第二中断;以及由所述前端驱动根据所述第二中断将所述请求处理结果返回至所述上层。3、在本发明的另一方面,提供一种处理虚拟io请求的装置。该装置包括:第一寄存器组,被配置为触发第一中断;第二寄存器组,被配置为触发第二中断;前端驱动,被配置为接收来自上层的第一请求,并将所述第一请求写入所述第一寄存器组以触发所述第一中断,并且被配置为根据所述第二中断将所述第一请求的请求处理结果返回至所述上层;以及后端驱动,被配置为根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备,以用于得到所述第一请求的请求处理结果,并且被配置为将所述请求处理结果写入所述第二寄存器组以触发所述第二中断。4、在本发明的又一方面,提供一种电子设备。该电子设备包括存储器,被配置为存储计算机程序;以及处理器,被配置为执行所述计算机程序以执行上述一种处理虚拟io请求的方法。5、在本发明的再一方面,提供一种计算机可读介质。该介质上存储有计算机程序,所述计算机程序被处理器执行以实现上述一种处理虚拟io请求的方法。6、根据本发明的技术方案,前端驱动将来自上层的第一请求写入第一寄存器组以触发第一中断,由后端驱动根据第一中断将第一请求转发给目标设备进程处理,以得到请求处理结果,同时后端驱动将请求处理结果写入第二寄存器组以触发上行中断,由前端驱动根据第二中断将请求处理结果返回至上层。前端驱动与后端驱动之间通过第一寄存器组和第二寄存器组分别产生第一中断和第二中断,实现多通道双向并行传输,无需加入等待队列串行执行,提高了虚拟io请求的实时性和可靠性。同时,来自上层的请求只需要在第一寄存器组和第二寄存器组中进行读写和存储处理,提高了虚拟io请求的响应速度。技术特征:1.一种处理虚拟io请求的方法,其特征在于,包括:2.根据权利要求1所述的方法,其特征在于,将所述第一请求写入第一寄存器组包括:3.根据权利要求2所述的方法,其特征在于,将所述第一请求写入第一寄存器组包括:4.根据权利要求2或3所述的方法,其特征在于,将所述第一请求写入第一寄存器组以触发第一中断包括:5.根据权利要求4所述的方法,其特征在于,由后端驱动根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备包括:6.根据权利要求4所述的方法,其特征在于,由后端驱动根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备包括:7.根据权利要求1所述的方法,其特征在于,由所述后端驱动将所述请求处理结果写入第二寄存器组以触发第二中断包括:8.根据权利要求1所述的方法,其特征在于,由所述前端驱动根据所述第二中断将所述请求处理结果返回至所述上层包括:9.根据权利要求1所述的方法,其特征在于,所述第一请求包括请求类型和请求数据,所述第一寄存器组包括第一请求寄存器和第一共享数据寄存器,10.根据权利要求9所述的方法,其特征在于,由后端驱动根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备包括:11.根据权利要求1所述的方法,其特征在于,所述第一寄存器组包括第一中断状态寄存器,所述第二寄存器组包括第二请求寄存器,所述请求处理结果包括完成类型,12.根据权利要求9所述的方法,其特征在于,由后端驱动根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备包括:13.根据权利要求1所述的方法,其特征在于,14.根据权利要求1所述的方法,其特征在于,还包括:15.根据权利要求1所述的方法,其特征在于,还包括:16.一种处理虚拟io请求的装置,其特征在于,包括:17.一种电子设备,其特征在于,包括:18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行以实现根据权利要求1至15中任一项所述的方法。技术总结本发明公开的一种处理虚拟IO请求的方法和装置、电子设备和存储介质,该方法包括:由前端驱动接收来自上层的第一请求,并将所述第一请求写入第一寄存器组以触发第一中断;由后端驱动根据所述第一中断从所述第一寄存器组中读取所述第一请求,并将所述第一请求转发给目标设备,以用于得到所述第一请求的请求处理结果;由所述后端驱动将所述请求处理结果写入第二寄存器组以触发第二中断;以及由所述前端驱动根据所述第二中断将所述请求处理结果返回至所述上层。本发明能够优化虚拟IO请求的处理过程,提高虚拟IO请求的实时性和可靠性,并实现快速IO请求的响应。技术研发人员:柯飞雄受保护的技术使用者:瑞芯微电子股份有限公司技术研发日:技术公布日:2024/10/17
本文地址:https://www.jishuxx.com/zhuanli/20241021/318389.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表