一种处理IO请求的方法、存储介质和虚拟化模拟器技术

技术编号:29672450 阅读:14 留言:0更新日期:2021-08-13 21:53
本发明专利技术公开了一种处理IO请求的方法、存储介质和虚拟化模拟器。该方法具体地:接收虚拟机的IO请求并将该IO请求发送给网络存储设备进行处理,然后若接收到网络存储设备返回的IO正常响应消息,则实时将其发送给虚拟机,若在预设的响应时长内没接收到网络存储设备返回的IO正常响应消息,则在预设时长内悬挂上述IO请求,即暂不执行IO响应异常流程。上述方法在预设时长内,不执行IO响应异常流程,留出时间等待网络通信信号恢复,降低了因网络通信信号不稳定而导致虚拟机文件系统变成只读状态的几率。

【技术实现步骤摘要】
一种处理IO请求的方法、存储介质和虚拟化模拟器
本专利技术涉及虚拟机的IO处理
,尤其涉及一种处理IO请求的方法、存储介质和虚拟化模拟器。
技术介绍
有些虚拟机所使用的存储设备是网络存储设备。虚拟机和网络存储设备之间的IO通信方式为:虚拟机发出IO请求给QEMU,QEMU把IO请求下发给网络存储设备,网络存储设备接收到IO请求之后进行处理,然后向QEMU返回IO正常响应消息。若网络通信信号不稳定,在没信号时就会无法访问网络存储设备,QEMU就不会收到网络存储设备返回的IO正常响应消息。QEMU在预设的响应时长内没有接收到网络存储设备发送的IO正常响应消息,就会执行IO响应异常流程,即生成IO响应异常消息并发送给虚拟机。当虚拟机接收到IO响应异常消息的次数达到预设次数后,虚拟机会认为网络存储设备故障,那么就把虚拟机文件系统变成只读状态,这样会导致虚拟机的操作系统或者应用程序异常。
技术实现思路
本专利技术所要解决的技术问题是如何降低因网络通信信号不稳定而导致虚拟机文件系统变成只读状态的几率。网络通信信号不稳定也就是网络通信信号时有时无,在无信号时会导致IO响应异常,通常等到信号恢复就可以自动解决,等待信号恢复的耗时一般不会太长。因此,本专利技术的思路是QEMU在预设的响应时长内没有接收到网络存储设备返回的IO正常响应消息时,先不执行IO响应异常流程,避免虚拟机在短时间内接收到IO响应异常消息的次数达到预设次数,而是留出时间等待网络通信信号恢复,如此则可降低因网络通信信号不稳定而导致虚拟机文件系统变成只读状态的几率。本专利技术的一种处理IO请求的方法,接收虚拟机的IO请求并将该IO请求发送给网络存储设备进行处理,然后若接收到网络存储设备返回的IO正常响应消息,则实时将其发送给虚拟机,若在预设的响应时长内没接收到网络存储设备返回的IO正常响应消息,则在预设时长内悬挂上述IO请求,即暂不执行IO响应异常流程。可选地,在所述预设时长内,将所述IO请求再次发送给网络存储设备。可选地,在所述预设时长内,反复将所述IO请求发送给网络存储设备,直至接收到网络存储设备返回的IO正常响应消息。可选地,若超过所述预设时长仍没有接收到网络存储设备返回的IO正常响应消息,则执行IO响应异常流程,不再悬挂上述IO请求。可选地,预先根据网络存储设备的网络通信信号的稳定性设置所述预设时长,网络通信信号的稳定性越高则把预设时长设置得越短。可选地,所述的不执行IO响应异常流程具体系不生成IO响应异常消息,或者系生成IO响应异常消息但不将其发送给虚拟机。可选地,所述预设时长为30分钟。可选地,所述IO响应异常消息是指IO错误消息。一种计算机可读存储介质,其上存储有可执行的计算机程序,该计算机程序被执行时可实现如上所述的处理IO请求的方法。一种虚拟化模拟器,该虚拟化模拟器执行如上所述的处理IO请求的方法。上述方法在预设时长内,不执行IO响应异常流程,留出时间等待网络通信信号恢复,降低了因网络通信信号不稳定而导致虚拟机文件系统变成只读状态的几率。附图说明图1是一种处理IO请求的方法的逻辑流程图。具体实施方式以下结合具体实施方式对本专利技术创造作进一步详细说明。QEMU是一种虚拟化模拟器,其优点在于是基于纯软件实现的,可以模拟绝大多数的硬件设备,但也正是因为QEMU是基于纯软件实现的,虚拟机与提供虚拟硬件服务的物理设备之间的所有指令都需要经过QEMU进行转手。如图1所示,虚拟机若需要访问网络存储设备,就向QEMU发送IO请求,QEMU就把该IO请求发送给网络存储设备。网络存储设备接收到IO请求后就进行相应的处理,处理好之后就会向QEMU返回IO正常响应消息;QEMU接收到IO正常响应消息之后,将其发送给虚拟机。但在网络没信号时,网络存储设备无法接收到IO请求,也就不会向QEMU返回IO正常响应消息。QEMU在预设的响应时长内没有接收到IO正常响应消息,就会执行IO响应异常流程,具体地:生成IO错误消息(即IO响应异常消息),然后把IO错误消息发送给虚拟机。当虚拟机接收到IO响应异常消息的次数达到预设次数后,虚拟机就会认为网络存储设备故障,从而把虚拟机文件系统变成只读状态。若是因网络通信信号不稳定而导致没信号,那等待信号恢复的耗时一般不会太长。因此,为了降低因网络通信信号不稳定而导致虚拟机文件系统变成只读状态的几率,本专利技术的思路是QEMU在预设的响应时长内没有接收到网络存储设备返回的IO正常响应消息时,先对IO请求进行悬挂,留出时间等待网络通信信号恢复。下面以实例来说明QEMU处理IO请求的方法流程:QEMU接收到虚拟机发送的IO请求后,将其发送给网络存储设备,假设此时网络通信信号不佳,网络存储设备接收不到IO请求,就不会向QEMU返回IO正常响应消息。QEMU在预设的响应时长内没有接收到网络存储设备返回的IO正常响应消息,那么就认为出现了IO错误,但QEMU先悬挂该IO请求,暂不生成IO错误消息。QEMU预先根据网络存储设备的网络通信信号的稳定性来设置悬挂时长,网络通信信号的稳定性越高则把预设时长设置得越短。上述网络存储设备的网络通信信号稳定性一般,则QEMU把悬挂时长设为30分钟。在预设时长30分钟内,QEMU按照预设的时间间隔,反复将上述IO请求发送给网络存储设备。通常情况下,若是由于网络通信信号不稳定造成的IO错误,则多数情况下会在30分钟内自动恢复网络通信信号。一般在30分钟内,网络通信信号恢复了,那么当QEMU再次发送上述IO请求时,网络存储设备就能够接收到了。网络存储设备接收到上述IO请求之后,对其进行处理,然后向QEMU返回IO正常响应消息。QEMU接收到IO正常响应消息之后,结束悬挂上述IO请求,把IO正常响应消息发送给虚拟机。若不是由于网络通信信号不稳定造成的IO错误,意味着很可能是网络存储设备真的出现故障,该情况下不会在30分钟内自动恢复。因此,QEMU如果超过30分钟之后仍没有接收到网络存储设备返回的IO正常响应消息,就结束悬挂上述IO请求,生成IO错误消息然后将其发送给虚拟机。本实施例的虚拟机在接收到IO错误消息之后,就使虚拟机文件系统进入只读状态。非优选地,虚拟机可以改为采用按照现有的方式来判断是否使虚拟机文件系统进入只读状态,也就是接收到IO响应异常消息的次数达到预设次数后,才使虚拟机文件系统变成只读状态。在其他实施例中,若在预设的响应时长内没有接收到网络存储设备返回的IO正常响应消息,QEMU悬挂上述IO请求的方式可以改为生成IO错误消息但不将其发送给虚拟机,这样一来,若在预设时长30分钟内接收到网络存储设备返回的IO正常响应消息,QEMU就把生成的IO错误消息删掉;若超过预设时长30分钟之后仍没有接收到网络存储设备返回的IO正常响应消息,QEMU就将IO错误消息发送给虚拟机。如上所述仅为本专利技术创造的实施方式,不以此限定专利保护范围。本领域技术人员在本专利技术创造的基础上作出非实质本文档来自技高网...

【技术保护点】
1.一种处理IO请求的方法,接收虚拟机的IO请求并将该IO请求发送给网络存储设备进行处理,然后若接收到网络存储设备返回的IO正常响应消息,则实时将其发送给虚拟机,其特征是:若在预设的响应时长内没接收到网络存储设备返回的IO正常响应消息,则在预设时长内悬挂上述IO请求,即暂不执行IO响应异常流程。/n

【技术特征摘要】
1.一种处理IO请求的方法,接收虚拟机的IO请求并将该IO请求发送给网络存储设备进行处理,然后若接收到网络存储设备返回的IO正常响应消息,则实时将其发送给虚拟机,其特征是:若在预设的响应时长内没接收到网络存储设备返回的IO正常响应消息,则在预设时长内悬挂上述IO请求,即暂不执行IO响应异常流程。


2.如权利要求1所述的处理IO请求的方法,其特征是:在所述预设时长内,将所述IO请求再次发送给网络存储设备。


3.如权利要求2所述的处理IO请求的方法,其特征是:在所述预设时长内,反复将所述IO请求发送给网络存储设备,直至接收到网络存储设备返回的IO正常响应消息。


4.如权利要求3所述的处理IO请求的方法,其特征是:若超过所述预设时长仍没有接收到网络存储设备返回的IO正常响应消息,则执行IO响应异常流程,不再悬挂上述IO请求。


5.如权利要求1所...

【专利技术属性】
技术研发人员:黎兵刘建平
申请(专利权)人:云宏信息科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1