用于虚拟机的数据读写方法及系统技术方案

技术编号:37504395 阅读:18 留言:0更新日期:2023-05-07 09:40
本公开涉及一种用于虚拟机的数据读写方法及系统,其中,系统包括:多个存储网络和宿主机,每个宿主机配置有虚拟机进程、存储接入软件,存储接入软件由共享内存队列组、IO发送线程组、IO接收线程组、通道选择器、通道负载均衡器、通道组成;共享内存队列组用于存放读写请求;IO发送线程组用于将读写请求通过指定通道发送至分布式存储系统;IO接收线程组用于从指定通道接收读写请求的响应结果,并写入共享内存队列;通道选择器,用于从多个通道中选择一个有效通道;通道负载均衡器,用于根据每个通道的权重将各读写请求分发给各个通道对应的共享内存队列。根据本公开的技术方案,能够缩短存储IO路径,降低软件架构的复杂性,提升性能和稳定性。能和稳定性。能和稳定性。

【技术实现步骤摘要】
用于虚拟机的数据读写方法及系统


[0001]本公开涉及云计算
,尤其涉及一种用于虚拟机的数据读写方法、装置、设备及存储介质。

技术介绍

[0002]在虚拟化或云计算环境下,虚拟机的虚拟硬盘通常由分布式存储提供,通过TCP/IP网络进行访问,为了提升网络链路的可用性,通常搭建两套或多套独立的存储网络,使得虚拟磁盘访问分布式存储的网络链路是冗余的。
[0003]目前,通常采用iSCSI(Internet Small Computer System Interface)方式对接分布式存储系统。iSCSI是C/S架构,C端为iSCSI initiator,S端为iSCSI Target,该方式中,读写过程涉及多次用户态和内核态之间的内存拷贝,读写请求在宿主机的IO路径过长,造成系统资源的浪费。

技术实现思路

[0004]为了解决上述技术问题,本公开提供了一种用于虚拟机的数据读写方法及系统。
[0005]第一方面,本公开实施例提供了一种用于虚拟机的数据读写系统,包括:
[0006]多个存储网络,多个宿主机;
[0007]其中,多个宿主机与多个存储网络相连;
[0008]每个所述宿主机配置有与虚拟机对应的虚拟机进程、存储接入软件,所述存储接入软件由共享内存队列组、IO发送线程组、IO接收线程组、通道选择器、通道负载均衡器、通道组成;
[0009]所述共享内存队列组由多个共享内存队列组成,用于存放所述虚拟机的内部应用程序对虚拟磁盘进行读写时的读写请求;
[0010]所述IO发送线程组,用于从所述共享内存队列获取所述读写请求,并将所述读写请求通过指定通道发送至分布式存储系统;
[0011]所述IO接收线程组,用于从指定通道接收所述读写请求的响应结果,并将所述响应结果写入所述共享内存队列;
[0012]所述通道选择器,用于根据检测结果和所述读写请求的响应结果,从多个通道中选择一个有效通道;
[0013]所述通道负载均衡器,用于根据每个通道的权重将各读写请求分发给各个通道对应的共享内存队列,其中,所述权重是根据每个存储网络的传输能力确定的。
[0014]第二方面,本公开实施例提供了一种用于虚拟机的数据读写方法,包括:
[0015]在虚拟机的内部应用程序对虚拟磁盘进行读写时,虚拟机进程中的虚拟磁盘设备接收到读写请求,并将所述读写请求存放至共享内存队列;
[0016]基于IO发送线程组从所述共享内存队列获取所述读写请求;
[0017]根据当前工作模式,基于通道选择器或者通道负载均衡器从多个通道中确定目标
通道,并将所述读写请求通过所述目标通道发送至分布式存储系统;
[0018]基于IO接收线程组从所述目标通道接收所述读写请求的响应结果,并将所述响应结果写入所述共享内存队列。
[0019]可选地,所述根据当前工作模式,基于通道选择器或者通道负载均衡器从多个通道中确定目标通道,包括:
[0020]所述当前工作模式为主备模式,基于通道选择器从多个通道中确定一个第一通道,以作为所述目标通道;
[0021]所述当前工作模式为多活模式,基于通道负载均衡器通过加权轮询算法从多个通道中确定与当前所述读写请求对应的通道,以作为所述目标通道。
[0022]可选地,所述方法还包括:
[0023]所述当前工作模式为主备模式,所述通道选择器定期向各通道发送探测请求;
[0024]当检测到所述目标通道存在异常,或者,所述目标通道的负载高于阈值的情况下,通道选择器从其他可用通道中确定一个第二通道,以作为所述目标通道。
[0025]可选地,所述方法还包括:
[0026]基于IO接收线程组,将共享内存队列中已发送且未收到响应的读写请求,标记为重试状态;
[0027]基于IO发送线程组,通过所述第二通道重新发送标记为重试状态的读写请求。
[0028]可选地,所述共享内存队列的结构由指令区和数据区组成,其中,指令区用于记录读写请求在共享内存队列的元数据,每个读写请求对应一条指令项,所述指令项的结构由请求状态、重发次数、数据起始位置、数据量组成。
[0029]可选地,所述共享内存队列基于多段式共享内存空间实现,所述多段式共享内存空间依次由各通道的指令区和各通道的数据区组成。
[0030]可选地,所述方法还包括:
[0031]当所述工作模式由主备模式切换至多活模式时,分别针对每个通道分配对应的IO发送线程组和IO接收线程组,并划分对应的共享内存队列的空间;
[0032]启用通道负载均衡器,并停用通道选择器。
[0033]可选地,所述方法还包括:
[0034]当所述工作模式由多活模式切换至主备模式时,启动通道选择器,确定主通道,并停用负载均衡器;
[0035]停用主通道以外其他通道的IO发送线程组,并由主通道的IO发送线程组接管全部指令区;
[0036]主通道以外其他通道的IO接收线程组继续完成已发送且未响应的读写请求,直至读写请求处理完成时停用并退出。
[0037]第三方面,本公开实施例提供了一种用于虚拟机的数据读写装置,包括:
[0038]请求模块,用于在虚拟机的内部应用程序对虚拟磁盘进行读写时,虚拟机进程中的虚拟磁盘设备接收到读写请求,并将所述读写请求存放至共享内存队列;
[0039]获取模块,用于基于IO发送线程组从所述共享内存队列获取所述读写请求;
[0040]发送模块,用于根据当前工作模式,基于通道选择器或者通道负载均衡器从多个通道中确定目标通道,并将所述读写请求通过所述目标通道发送至分布式存储系统;
[0041]响应模块,用于基于IO接收线程组从所述目标通道接收所述读写请求的响应结果,并将所述响应结果写入所述共享内存队列。
[0042]第四方面,本公开实施例提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述第二方面所述的用于虚拟机的数据读写方法。
[0043]第五方面,本公开实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面所述的用于虚拟机的数据读写方法。
[0044]本公开实施例提供的技术方案与现有技术相比具有如下优点:能够实现虚拟机多路径的使用存储,缩短存储IO路径,减少组件,降低了软件架构的复杂性,提升了性能和稳定性。
附图说明
[0045]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0046]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于虚拟机的数据读写系统,其特征在于,包括:多个存储网络,多个宿主机;其中,多个宿主机与多个存储网络相连;每个所述宿主机配置有与虚拟机对应的虚拟机进程、存储接入软件,所述存储接入软件由共享内存队列组、IO发送线程组、IO接收线程组、通道选择器、通道负载均衡器、通道组成;所述共享内存队列组由多个共享内存队列组成,用于存放所述虚拟机的内部应用程序对虚拟磁盘进行读写时的读写请求;所述IO发送线程组,用于从所述共享内存队列获取所述读写请求,并将所述读写请求通过指定通道发送至分布式存储系统;所述IO接收线程组,用于从指定通道接收所述读写请求的响应结果,并将所述响应结果写入所述共享内存队列;所述通道选择器,用于根据检测结果和所述读写请求的响应结果,从多个通道中选择一个有效通道;所述通道负载均衡器,用于根据每个通道的权重将各读写请求分发给各个通道对应的共享内存队列,其中,所述权重是根据每个存储网络的传输能力确定的。2.一种基于如权利要求1所述系统的数据读写方法,其特征在于,所述方法包括:在虚拟机的内部应用程序对虚拟磁盘进行读写时,虚拟机进程中的虚拟磁盘设备接收到读写请求,并将所述读写请求存放至共享内存队列;基于IO发送线程组从所述共享内存队列获取所述读写请求;根据当前工作模式,基于通道选择器或者通道负载均衡器从多个通道中确定目标通道,并将所述读写请求通过所述目标通道发送至分布式存储系统;基于IO接收线程组从所述目标通道接收所述读写请求的响应结果,并将所述响应结果写入所述共享内存队列。3.如权利要求2所述的方法,其特征在于,所述根据当前工作模式,基于通道选择器或者通道负载均衡器从多个通道中确定目标通道,包括:所述当前工作模式为主备模式,基于通道选择器从多个通道中确定一个第一通道,以作为所述目标通道;所述当前工作模式为多活模式,基于通道负载均衡器通过加权轮询算法从多个通道中确定与当前所述读写请求对应的通道,以作为所述目标通道。4.如权利要求3所述的方法,其特征在于,还包括:所述当前工作模式为主备模式,所述通道选择器定期向各通道发送探测请求;当检测到所述目标...

【专利技术属性】
技术研发人员:张朝潞
申请(专利权)人:北京天融信科技有限公司北京天融信软件有限公司
类型:发明
国别省市:

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

1