技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于内存共享的SPDK架构多控存储扩展方法及装置与流程  >  正文

一种基于内存共享的SPDK架构多控存储扩展方法及装置与流程

  • 国知局
  • 2024-12-26 15:03:26

本说明书一个或多个实施例涉及通信技术,尤其涉及一种基于内存共享的spdk架构多控存储扩展方法及装置。

背景技术:

1、存储性能开发套件(storage performance development kit,spdk)提供了一系列的高性能、可扩展、用户态下面的工具和库。spdk目前的应用场景主要是针对块存储,其采用轮询模式驱动,采用环形队列(ring queue)的方式处理线程之间的请求,请求线程将请求提交到队列后继续执行其他工作,处理线程可以通过不断轮询或定期轮询队列的方式检查是否有新请求提交并进行处理。当前的存储系统已经从单一的单控系统发展成多控系统,然而目前spdk软件只能运行在单个机器上,导致多控情况下,spdk架构的控制器之间的通信方式只能通过fc、iscsi、nvme-of等通信协议,将一个控制器的存储设备通过上述协议映射到另一个控制器上,使映射的存储设备被当做块设备来使用。这些方式都需要经过块设备层的处理,增加了结构的复杂性,成本较高,传输速率较慢,io时延较高,多控间运行的spdk软件相互协作性较差。

技术实现思路

1、为了解决上述问题,本说明书一个或多个实施例描述了一种基于内存共享的spdk架构多控存储扩展方法及装置。

2、根据第一方面,提供了一种基于内存共享的spdk架构多控存储扩展方法,所述方法包括:

3、基于支持内存共享的高速互联协议构建与其余控制器之间的互联链路,所述互联链路用以对多个控制器进行内存映射共享;

4、在spdk进程中创建原始环形队列,基于所述互联链路在其余控制器的spdk进程中映射所述原始环形队列对应的映射环形队列,相互匹配的所述原始环形队列与映射环形队列的队列数据实时共享;

5、遍历处理所述原始环形队列中的队列数据。

6、优选的,所述高速互联协议为非透明桥协议或计算快速链路协议。

7、优选的,所述原始环形队列仅设置有消息出队权限,所述映射环形队列仅设置有消息入队权限。

8、优选的,所述在spdk进程中创建原始环形队列之后,还包括:

9、初始化所述原始环形队列。

10、优选的,所述遍历处理所述原始环形队列中的队列数据,包括:

11、以不断轮询的方式遍历所述原始环形队列,当所述原始环形队列中存在队列数据时,从所述原始环形队列中取出所述队列数据,并处理所述队列数据。

12、优选的,所述方法还包括:

13、当检测到数据写入指令时,确定待写入数据对应的目标映射环形队列和目标写入行,并将所述待写入数据写入至所述目标映射环形队列的目标写入行。

14、优选的,所述在spdk进程中创建原始环形队列,基于所述互联链路在其余控制器的spdk进程中映射所述原始环形队列对应的映射环形队列,包括:

15、当存在两个以上需要内存共享的其余控制器时,基于需要内存共享的其余控制器数量在spdk进程中创建相同数量的原始环形队列,并基于所述互联链路在各其余控制器的spdk进程中分别映射不同所述原始环形队列对应的映射环形队列。

16、根据第二方面,提供了一种基于内存共享的spdk架构多控存储扩展装置,所述装置包括:

17、构建模块,用于基于支持内存共享的高速互联协议构建与其余控制器之间的互联链路,所述互联链路用以对多个控制器进行内存映射共享;

18、映射模块,用于在spdk进程中创建原始环形队列,基于所述互联链路在其余控制器的spdk进程中映射所述原始环形队列对应的映射环形队列,相互匹配的所述原始环形队列与映射环形队列的队列数据实时共享;

19、遍历模块,用于遍历处理所述原始环形队列中的队列数据。

20、根据第三方面,提供了一种电子设备,包括处理器以及存储器;

21、所述处理器与所述存储器相连;

22、所述存储器,用于存储可执行程序代码;

23、所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。

24、根据第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如第一方面或第一方面的任意一种可能的实现方式提供的方法。

25、本说明书实施例提供的方法及装置,不需要fc、iscsi、nvme-of等上层通信协议的支持,也不需要经过块设备的转换,通过spdk进程直接操作对端,也即操作其余控制器映射的环形队列,将对端的spdk进程看作自身线程进行处理,以此将进程间的通信转变为线程间的通信,减小了资源消耗,提升了通信速度,将spdk的运行从单控制器运行扩展到了多控制器运行,实现了spdk架构下的多控存储扩展。

技术特征:

1.一种基于内存共享的spdk架构多控存储扩展方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述高速互联协议为非透明桥协议或计算快速链路协议。

3.根据权利要求1所述的方法,其特征在于,所述原始环形队列仅设置有消息出队权限,所述映射环形队列仅设置有消息入队权限。

4.根据权利要求1所述的方法,其特征在于,所述在spdk进程中创建原始环形队列之后,还包括:

5.根据权利要求1所述的方法,其特征在于,所述遍历处理所述原始环形队列中的队列数据,包括:

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,所述在spdk进程中创建原始环形队列,基于所述互联链路在其余控制器的spdk进程中映射所述原始环形队列对应的映射环形队列,包括:

8.一种基于内存共享的spdk架构多控存储扩展装置,其特征在于,所述装置包括:

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-7任一项所述方法的步骤。

技术总结本说明书实施例公开了一种基于内存共享的SPDK架构多控存储扩展方法及装置。该方法包括构建与其余控制器之间的互联链路;在SPDK进程中创建原始环形队列,基于互联链路在其余控制器的SPDK进程中映射原始环形队列对应的映射环形队列;遍历处理原始环形队列中的队列数据。本说明书实施例不需要FC、ISCSI、NVMe‑oF等上层通信协议的支持,也不需要经过块设备的转换,通过SPDK进程直接操作对端,也即操作其余控制器映射的环形队列,将对端的SPDK进程看作自身线程进行处理,实现将进程间的通信转变为线程间的通信,减小了资源消耗,提升了通信速度,将SPDK的运行从单控制器运行扩展到了多控制器运行。技术研发人员:宫平,徐旭,杨佳东,李志铎,张涛,高利娟,江云飞受保护的技术使用者:杭州计算机外部设备研究所(中国电子科技集团公司第五十二研究所)技术研发日:技术公布日:2024/12/23

本文地址:https://www.jishuxx.com/zhuanli/20241226/344345.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。