[发明专利]利用virtio驱动实现请求的方法、装置和存储介质有效
申请号: | 201910221640.8 | 申请日: | 2019-03-22 |
公开(公告)号: | CN109976877B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 王宏辉;刘尧 | 申请(专利权)人: | 优刻得科技股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F8/65 |
代理公司: | 上海华诚知识产权代理有限公司 31300 | 代理人: | 崔巍 |
地址: | 200090 上海市杨浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 virtio 驱动 实现 请求 方法 装置 存储 介质 | ||
本发明提供一种利用virtio驱动实现请求的方法,装置和存储介质。该方法包括:接收步骤,接收一个或多个请求;信息生成和存储步骤,在每个请求被处理时,生成对应的描述符的处理信息,得到一个或多个描述符各自的一个或多个处理信息,并进行存储;信息获取步骤,在对一个或多个请求的处理中断后,获取存储的一个或多个处理信息;检索步骤,根据一个或多个处理信息,从一个或多个描述符中检索出未处理描述符,并根据未处理描述符各自的处理信息,取出可用环的当前环索引;指示步骤,指示对一个或多个请求中与未处理描述符对应的请求进行处理,并指示从当前环索引的下一个环索引开始处理可用环中的描述符所对应的请求。
技术领域
本发明涉及利用virtio驱动实现请求的方法、装置和存储介质。
背景技术
Virtio驱动是目前虚拟化环境中常用的驱动,该驱动用于将虚机内的I/O请求发送给后端的存储系统。virtio驱动分为两部分,在虚机内的来宾操作系统(guest os)中的是前端驱动部分,在宿主机上的是后端驱动部分,通常由前端驱动部分将I/O请求发送给后端驱动部分进行处理。
在实际生产环境中,后端驱动部分往往对应复杂的存储系统的接入端,拥有复杂的业务逻辑,也经常需要进行版本升级或者会发生意外崩溃(crash)的情况。目前在发生这种情况时,通过重启虚拟机的方式来进行恢复。然而,这样会对用户业务造成严重影响。
发明内容
本发明提供一种利用virtio驱动实现请求的方法,该方法包括:
接收步骤,接收一个或多个请求,每个请求对应的描述符被记录到所述virtio驱动的可用环中;
信息生成和存储步骤,在所述每个请求被处理时,生成所述对应的描述符的处理信息,得到一个或多个描述符各自的一个或多个处理信息,并进行存储;
信息获取步骤,在对所述一个或多个请求的处理中断后,获取存储的所述一个或多个处理信息;
检索步骤,根据所述一个或多个处理信息,从所述一个或多个描述符中检索出未处理描述符,并根据所述未处理描述符各自的处理信息,取出所述可用环的当前环索引;
指示步骤,指示对所述一个或多个请求中与所述未处理描述符对应的请求进行处理,并指示从所述当前环索引的下一个环索引开始处理所述可用环中的描述符所对应的请求。
其中,所述一个或多个处理信息中的每个处理信息包括描述符的处理状态、描述符在所述可用环中对应的环索引、以及所述对应的环索引的进位。
其中,当请求已经处理完成或尚未开始处理时,所述处理状态为第一符号,当请求正在处理中时,所述处理状态为第二符号。
其中,在所述检索步骤中,从所述一个或多个描述符中检索出所述处理状态为所述第二符号的描述符作为所述未处理描述符,并根据所述未处理描述符各自的处理信息中的所述环索引和所述进位,取出所述当前环索引。
本发明还提供一种利用virtio驱动实现请求的装置,该装置包括:
接收单元,接收一个或多个请求,每个请求对应的描述符被记录到所述virtio驱动的可用环中;
信息生成和存储单元,在所述每个请求被处理时,生成所述对应的描述符的处理信息,得到一个或多个描述符各自的一个或多个处理信息,并进行存储;
信息获取单元,在对所述一个或多个请求的处理中断后,获取存储的所述一个或多个处理信息;
检索单元,根据所述一个或多个处理信息,从所述一个或多个描述符中检索出未处理描述符,并根据所述未处理描述符各自的处理信息,取出所述可用环的当前环索引;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于优刻得科技股份有限公司,未经优刻得科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910221640.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:加速器管理方法和装置
- 下一篇:用于发送信息的方法和装置