调度方法、装置、电子设备及计算机可读介质与流程

文档序号:26590043发布日期:2021-09-10 20:36阅读:46来源:国知局
调度方法、装置、电子设备及计算机可读介质与流程

1.本技术实施例涉及数据存储领域,尤其涉及一种调度方法、装置、电子设备及计算机可读介质。


背景技术:

2.nvme ssd(具有面向存储的高速数据传输接口的固态硬盘)是一种高性能闪存存储盘,通常这种闪存存储盘构建在nand flash(nand闪存)基础之上。由于nand flash不能进行原地更新,因此,在nvme ssd实现的过程中设计了一套复杂的ftl(闪存转换层)机制,通过追加写的方式在nand flash介质上组织数据。这种设计方法可以被称之为log-structured(日志结构)数据组织方式。这种数据组织方式存在的一个问题是需要进行数据的重组与合并,这个过程被称之为garbage collection(垃圾回收),简称为gc。gc过程通常是一个后台过程,会产生大量的数据复制流量,这种数据复制流量会对前端的用户数据请求流量产生性能影响。因此,在闪存存储盘处于空盘状态时,对外表现的用户性能会很高,对于nvme ssd来讲,最佳写入吞吐带宽可以达到2gb/s。在闪存存储盘处于稳态状态时,对外表现的用户性能会极剧下降,写入吞吐带宽只能达到500mb/s。这就说明闪存存储盘内后端的gc过程对前端的用户性能影响很大,是影响用户性能的主导因素。
3.在基于nvme ssd的分布式闪存存储系统中,nvme ssd内部的gc过程对分布式闪存存储系统而言是透明的,并且nvme ssd的用户数据请求与nvme ssd内部的gc过程是并发执行的。gc过程产生的流量为io的背景流量,背景流量对于分布式闪存存储系统会存在如下几个方面的影响:
4.1、背景流量会影响到用户的数据请求的服务质量,从而使得用户的数据请求出现长尾。例如,对于nvme ssd而言,正常的数据读请求的延迟只有100us左右,在存在大量的背景流量时,延迟会增加到1ms以上。
5.2、在用户的数据请求存在洪峰流量时,用户数据请求与背景流量的冲突更加严重,分布式闪存存储系统的长尾延迟会随之增加,用户数据请求的服务质量会受到影响。
6.3、在设计分布式闪存存储系统过程中,为了保证用户数据请求的服务质量,需要限制每个闪存存储节点的io吞吐流量。这种设计方式可以在一定程度上保证用户的数据请求的服务质量,但是这种设计方式最大的一个问题在于牺牲了闪存存储节点的吞吐带宽能力,用吞吐带宽来换取用户的数据请求的服务质量,会影响单节点的整体服务能力。
7.由此可见,如何有效保证分布式闪存存储系统针对数据请求的服务质量成为当前亟待解决的技术问题。


技术实现要素:

8.本技术的目的在于提出一种调度方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何有效保证分布式闪存存储系统针对数据请求的服务质量的技术问题。
9.根据本技术实施例的第一方面,提供了一种调度方法。所述方法包括:采集分布式闪存存储系统中的闪存存储设备的调度参数;基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度所述闪存存储设备处理数据请求。
10.根据本技术实施例的第二方面,提供了一种调度装置。所述装置包括:采集模块,用于采集分布式闪存存储系统中的闪存存储设备的调度参数;调度模块,用于基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度所述闪存存储设备处理数据请求。
11.根据本技术实施例的第三方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面所述的调度方法。
12.根据本技术实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面所述的调度方法。
13.根据本技术实施例提供的调度方案,采集分布式闪存存储系统中的闪存存储设备的调度参数,并基于调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度闪存存储设备处理数据请求,与现有的其它方式相比,使得分布式闪存存储系统中的闪存存储设备无需并行执行垃圾回收操作与数据请求的处理操作,通过调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,使得分布式闪存存储系统中的闪存存储设备中的垃圾回收操作与数据请求的处理操作错开执行,保证数据请求的处理操作不受垃圾回收操作的干扰,进而保证数据请求获得最佳的服务质量,增强了分布式闪存存储系统的整体吞吐能力,并且还可以增强分布式闪存存储系统的抗数据请求洪峰的能力。
附图说明
14.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
15.图1a为根据现有技术提供的分布式闪存存储系统的结构示意图;
16.图1b为根据本技术实施例提供的分布式闪存存储系统的结构示意图;
17.图1c为本技术实施例一中调度方法的步骤流程图;
18.图1d为根据本技术实施例一提供的调度过程的示意图;
19.图1e为根据本技术实施例一提供的调度过程的示意图;
20.图2a为本技术实施例二中调度方法的步骤流程图;
21.图2b为根据本技术实施例二提供的调度过程的示意图;
22.图3为本技术实施例三中调度装置的结构示意图;
23.图4为本技术实施例四中调度装置的结构示意图;
24.图5为本技术实施例五中电子设备的结构示意图;
25.图6为本技术实施例六中电子设备的硬件结构。
具体实施方式
26.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
27.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
28.如图1a所示,为现有技术中基于nvme ssd构建的分布式闪存存储系统。该分布式闪存存储系统包括存储管理服务以及与存储管理服务通信连接的多个闪存存储节点。每个闪存存储节点包括本地存储服务、用户空间文件系统,以及多个闪存存储设备。此外,闪存存储设备内部会运行ftl(flash transfer layer,闪存转换层)软件,其中包括gc软件。gc的执行策略和gc的具体执行过程均由闪存存储设备内部的软件逻辑来实现,即gc policy(gc的调度策略)和gc action(gc的具体执行过程)都在闪存存储设备内部完成。gc policy部分主要解决什么时候启动gc的问题,是资源不够的时候启动gc,还是负载比较低的时候启动gc。gc action部分主要是gc执行的过程,具体需要选择执行gc操作的数据块,以及执行数据块中的数据的搬移操作。由于gc policy部分和gc action部分均在闪存存储设备内部完成,对分布式闪存存储系统而言是透明的,因此,引入了分布式闪存存储系统中的闪存存储设备针对数据请求的服务质量的问题。
29.为了有效提升分布式闪存存储系统中的闪存存储设备针对数据请求的服务质量,将闪存存储设备的设计与分布式闪存存储系统进行融合,如图1b所示,提出了将闪存存储设备内部的gc policy和gc action进行分离的想法,闪存存储设备内部的gc policy部分由分布式闪存存储系统中的存储管理服务来完成,站在全局统一的视角对闪存存储设备内部的gc进行调度,从而减少gc的背景数据流量和前端用户的数据请求流量之间的冲突,提升分布式闪存存储系统中的闪存存储设备针对数据请求的服务质量。具体地,通过将闪存存储设备内部的gc过程抽象成了gc action和gc policy两个重要部分,并且将gc policy部分从闪存存储设备内部移到分布式闪存存储层面,从而使得闪存存储设备内部的gc过程对分布式闪存存储系统不透明。分布式闪存存储层面可以调度闪存存储设备内部的gc执行过程。gc policy部分由分布式闪存存储系统的存储管理服务进行调度执行,通过存储管理服务全局调度的方式,可以解决传统分布式闪存存储系统中遇到的数据请求的服务质量以及分布式闪存存储系统整体吞吐能力受限的问题。
30.更具体地,在一种闪存存储设备的设计中,闪存存储设备需要对外提供gc控制接口。通过调用接口传输命令的方式,分布式闪存存储系统的存储管理服务可以控制闪存存储设备内部gc的启动和停止。当接收到启动gc命令之后,闪存存储设备内部的gc流程开始启动,背景流量会占用nand flash的后端带宽;当接收到停止gc命令之后,闪存存储设备内部的gc流程停止,对前端用户的数据请求的影响降低至最低。闪存存储设备内部保留gc的执行机制。在存储管理服务调用接口启动闪存存储设备内部的gc流程之后,闪存存储设备内部的gc模块开始执行,具体的执行过程由闪存存储设备的固件程序来完成。除了对外提
供gc控制接口,闪存存储设备还需要对外提供闪存空间的剩余大小。在现有的闪存存储设备的设计中,闪存存储设备不会对外提供闪存空间的剩余大小,只会提供闪存存储设备可以写入的逻辑空间的大小。在实际应用中,可以将逻辑空间的剩余大小表示为l,闪存空间的剩余大小表示为n。l越大表明可以接收更多的数据请求,n越大表明可以不用着急着进行gc。通过l和n的大小,存储管理服务可以进行gc操作与数据请求的处理操作的调度。此外,分布式闪存存储系统的数据请求也需要通过存储管理服务调度。这样,gc操作和数据请求的处理操作均可通过存储管理服务进行调度,避免gc操作的背景数据流量和前端用户的数据请求流量之间的竞争。
31.基于上述闪存存储设备的设计,本技术实施例提供了一种调度方法。具体地,如图1c所示,本技术实施例提供的调度方法包括以下步骤:
32.在步骤s101中,采集分布式闪存存储系统中的闪存存储设备的调度参数。
33.在本技术实施例中,所述闪存存储设备可为nvme ssd,所述调度参数可理解为用于调度所述闪存存储设备进行相关操作的参数,例如,闪存存储设备的闪存空间的剩余大小、闪存存储设备的逻辑空间的剩余大小等。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
34.在一些可选实施例中,在采集分布式闪存存储系统中的闪存存储设备的调度参数时,每间隔预设时间段采集分布式闪存存储系统中的闪存存储设备的调度参数。其中,所述预设时间段可由本领域技术人员根据实际需要进行设定,本技术实施例对此不做任何限定。
35.在一个具体的例子中,每间隔预设时间段采集分布式闪存存储系统中的闪存存储设备的调度参数时,通过分布式闪存存储系统中的存储管理服务,每间隔预设时间段采集分布式闪存存储系统中的闪存存储设备的闪存空间的剩余大小和逻辑空间的剩余大小。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
36.在一些可选实施例中,所述采集分布式闪存存储系统中的闪存存储设备的调度参数之前,所述方法还包括:为所述分布式闪存存储系统的存储管理服务配置从所述闪存存储设备中分离的垃圾回收操作的调度策略,以调度所述闪存存储设备执行垃圾回收操作。籍此,通过为分布式闪存存储系统的存储管理服务配置从闪存存储设备中分离的垃圾回收操作的调度策略,使得分布式闪存存储系统的存储管理服务能够站在全局统一的视角对闪存存储设备内部的垃圾回收操作进行调度,从而减少垃圾回收操作的背景数据流量和前端用户的数据请求流量之间的冲突,提升分布式闪存存储系统中的闪存存储设备针对数据请求的服务质量。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
37.在一个具体的例子中,所述为所述分布式闪存存储系统的存储管理服务配置从所述闪存存储设备中分离的垃圾回收操作的调度策略的具体实施方式如上所述,在此不再赘述。
38.在步骤s102中,基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求。
39.在本技术实施例中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,所述第二调度参数用于调度所述闪存存储设备处理数据请求。例如,所述第一调度参数包括所述闪存存储设备中的闪存空间的剩余大小,和/或所述第二调度参数包括所述闪
存存储设备中的逻辑空间的剩余大小。所述调度时间窗口可为调度时隙或者调度时间片等。所述数据请求包括数据读请求和数据写请求。此外,通过所述分布式闪存存储系统中的存储管理服务,基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
40.在一些可选实施例中,在基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求时,基于所述调度参数包括的所述第一调度参数,在所述调度时间窗口调度所述闪存存储设备执行垃圾回收操作;基于所述调度参数包括的所述第二调度参数,在所述调度时间窗口调度所述分布式闪存存储系统中剩余的闪存存储设备处理数据请求。其中,所述剩余的闪存存储设备为所述分布式闪存存储系统中除去调度执行垃圾回收操作的闪存存储设备的闪存存储设备。籍此,通过第一调度参数,在调度时间窗口调度闪存存储设备执行垃圾回收操作,并通过第二调度参数,在调度时间窗口调度分布式闪存存储系统中剩余的闪存存储设备处理数据请求,能够在调度时间窗口准确地调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
41.在一些可选实施例中,在基于所述调度参数包括的所述第一调度参数,在所述调度时间窗口调度所述闪存存储设备执行垃圾回收操作时,基于所述调度参数包括的所述第一调度参数,确定待调度的闪存存储设备;在所述调度时间窗口,调度所述待调度的闪存存储设备执行垃圾回收操作。籍此,通过第一调度参数,能够在调度时间窗口准确地调度闪存存储设备执行垃圾回收操作。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
42.在一个具体的例子中,在基于所述调度参数包括的所述第一调度参数,确定待调度的闪存存储设备时,基于所述调度参数包括的所述第一调度参数,对所述闪存存储设备进行排序,以获得所述闪存存储设备的排序结果;基于所述闪存存储设备的排序结果,确定所述待调度的闪存存储设备。籍此,通过闪存存储设备的第一调度参数,对闪存存储设备进行排序,能够准确地确定待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
43.在一个具体的例子中,当所述第一调度参数为所述闪存存储设备的闪存空间的剩余大小时,可按照所述闪存存储设备的闪存空间的剩余大小由小到大的顺序,对所述闪存存储设备进行排序,并将内存空间的剩余大小最小的闪存存储设备确定为待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
44.在一个具体的例子中,在所述调度时间窗口,调度所述待调度的闪存存储设备执行垃圾回收操作时,在所述调度时间窗口,通过调用所述待调度的闪存存储设备的垃圾回收操作的控制接口传入垃圾回收操作的执行命令,调度所述待调度的闪存存储设备执行垃圾回收操作。籍此,通过调用待调度的闪存存储设备的垃圾回收操作的控制接口传入垃圾回收操作的执行命令,能够准确地调度待调度的闪存存储设备执行垃圾回收操作。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
45.在一些可选实施例中,在基于所述调度参数包括的所述第二调度参数,在所述调
度时间窗口调度所述分布式闪存存储系统中剩余的闪存存储设备处理数据请求时,基于所述调度参数包括的所述第二调度参数,确定所述剩余的闪存存储设备中的待调度的闪存存储设备;在所述调度时间窗口,调度所述剩余的闪存存储设备中的待调度的闪存存储设备处理数据请求。籍此,通过第二调度参数,能够在调度时间窗口准确地调度剩余的闪存存储设备处理数据请求。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
46.在一个具体的例子中,在基于所述调度参数包括的所述第二调度参数,确定所述剩余的闪存存储设备中的待调度的闪存存储设备时,基于所述调度参数包括的所述第二调度参数,确定所述剩余的闪存存储设备的调度权重;基于所述剩余的闪存存储设备的调度权重,确定所述剩余的闪存存储设备中的待调度的闪存存储设备。籍此,通过剩余的闪存存储设备的调度权重,能够准确地确定剩余的闪存存储设备中的待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
47.在一个具体的例子中,在确定所述剩余的闪存存储设备的调度权重时,所述剩余的闪存存储设备的所述第二调度参数越大,所述剩余的闪存存储设备的调度权重越大;所述剩余的闪存存储设备的所述第二调度参数越小,所述剩余的闪存存储设备的调度权重越小。在确定所述剩余的闪存存储设备中的待调度的闪存存储设备时,通过rr(round-robin,轮询调度)算法,基于所述剩余的闪存存储设备的调度权重,确定所述剩余的闪存存储设备中的待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
48.在一个具体的例子中,在所述调度时间窗口,调度所述剩余的闪存存储设备中的待调度的闪存存储设备处理数据请求时,在所述调度时间窗口,通过调用所述待调度的闪存存储设备的数据请求处理操作的控制接口传入处理数据请求的命令,调度所述待调度的闪存存储设备处理数据请求。籍此,通过调用所述待调度的闪存存储设备的数据请求处理操作的控制接口传入处理数据请求的命令,能够准确地调度待调度的闪存存储设备处理数据请求。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
49.在一些可选实施例中,在基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求之前,所述方法还包括:对所述分布式闪存存储系统中的所述闪存存储设备进行分组,以获得所述分布式闪存存储系统中的所述闪存存储设备的分组;所述基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,包括:针对每个所述分组,基于所述调度参数包括的所述第一调度参数和所述第二调度参数,在所述调度时间窗口调度同一分组中不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求。籍此,通过对分布式闪存存储系统中的闪存存储设备进行分组,并针对每个分组,在调度时间窗口调度同一分组中不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,能够有效提高针对分布式闪存存储系统中的闪存存储设备的调度效率。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
50.在一个具体的例子中,所述基于所述调度参数包括的所述第一调度参数和所述第二调度参数,在调度时间窗口调度同一分组中不同的闪存存储设备分别执行垃圾回收操作
和处理数据请求的具体实施方式与上述基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求的具体实施方式类似,在此不再赘述。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
51.在一些可选实施例中,所述分布式闪存存储系统中的闪存存储节点布置有多个所述闪存存储设备。在对所述分布式闪存存储系统中的所述闪存存储设备进行分组时,以所述闪存存储节点为单位,对所述分布式闪存存储系统中的所述闪存存储设备进行分组,以获得所述分布式闪存存储系统中的所述闪存存储设备的分组。籍此,通过以闪存存储节点为单位,对分布式闪存存储系统中的闪存存储设备进行分组,能够准确地对分布式闪存存储系统中的闪存存储设备进行分组。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
52.在一个具体的例子中,如图1d所示,分布式闪存存储系统包括n个闪存存储设备和用于在调度时间窗口调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求的存储管理服务。在存储管理服务调度n个闪存存储设备之前,存储管理服务采集n个闪存存储设备的调度参数。在存储管理服务采集到n个闪存存储设备的调度参数之后,存储管理服务基于n个闪存存储设备的调度参数,在调度时间窗口调度n个闪存存储设备中的不同闪存存储设备分别执行垃圾回收操作和处理数据请求。例如,存储管理服务调度闪存存储设备1执行垃圾回收操作以及调度闪存存储设备2处理数据请求。籍此,闪存存储设备无需并行执行垃圾回收操作与数据请求的处理操作,通过调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,使得闪存存储设备中的垃圾回收操作与数据请求的处理操作错开执行,避免数据请求的处理操作受垃圾回收操作的影响,进而可充分发挥闪存存储设备的最佳性能表现,并且在一定程度上还可以提升闪存存储设备的吞吐带宽能力,从而发挥闪存存储设备的整体利用率。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
53.在一个具体的例子中,如图1e所示,为分布式闪存存储系统的存储管理服务的调度过程。在描述存储管理服务的调度过程之前,假设闪存存储设备的逻辑空间的剩余大小为l,闪存存储设备的闪存空间的剩余大小为n。存储管理服务的调度思想是首先调度闪存存储设备执行垃圾回收操作,在调度闪存存储设备执行垃圾回收操作的基础之上,再调度闪存存储设备处理数据请求。具体地,可根据闪存存储设备的n值由小到大的顺序,对分布式闪存存储系统中的所有闪存存储设备进行排序,选取n值最小的闪存存储设备为待调度执行垃圾回收操作的闪存存储设备。在选定待调度执行垃圾回收操作的闪存存储设备之后,可根据闪存存储设备的l值由大到小的顺序,对分布式闪存存储系统中的剩余的闪存存储设备进行排序,并根据排序结果确定分布式闪存存储系统中的剩余的闪存存储设备的调度权重,再根据分布式闪存存储系统中的剩余的闪存存储设备的调度权重确定待调度处理数据请求的闪存存储设备。在一个调度时隙内,通过分布式闪存存储系统中的存储管理服务,调度待调度执行垃圾回收操作的闪存存储设备执行垃圾回收操作,及待调度处理数据请求的闪存存储设备处理数据请求。通过这种方式,将垃圾回收操作和数据请求的处理操作分别调度到不同的闪存存储设备上执行,使得同一闪存存储设备中的垃圾回收操作与数据请求的处理操作错开执行,避免数据请求的处理操作受垃圾回收操作的影响,进而可充
分发挥闪存存储设备的最佳性能表现,并且在一定程度上还可以提升闪存存储设备的吞吐带宽能力,从而发挥闪存存储设备的整体利用率。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
54.通过本技术实施例提供的调度方法,采集分布式闪存存储系统中的闪存存储设备的调度参数,并基于调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度闪存存储设备处理数据请求,与现有的其它方式相比,使得分布式闪存存储系统中的闪存存储设备无需并行执行垃圾回收操作与数据请求的处理操作,通过调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,使得分布式闪存存储系统中的闪存存储设备中的垃圾回收操作与数据请求的处理操作错开执行,保证数据请求的处理操作不受垃圾回收操作的干扰,进而保证数据请求获得最佳的服务质量,增强了分布式闪存存储系统的整体吞吐能力,并且还可以增强分布式闪存存储系统的抗数据请求洪峰的能力。
55.本实施例的调度方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、pc机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(pda)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如google glass、oculus rift、hololens、gear vr)等。
56.参照图2a,示出了本技术实施例二的调度方法的步骤流程图。
57.具体地,本实施例提供的调度方法包括以下步骤:
58.在步骤s201中,采集分布式闪存存储系统中的闪存存储设备的调度参数。
59.由于该步骤s201的具体实施方式与上述步骤s101的具体实施方式类似,在此不再赘述。
60.在步骤s202中,基于所述调度参数包括的所述第二调度参数,在所述调度时间窗口调度所述闪存存储设备处理数据请求。
61.在一些可选实施例中,在基于所述调度参数包括的所述第二调度参数,在所述调度时间窗口调度所述闪存存储设备处理数据请求时,基于所述调度参数包括的所述第二调度参数,确定待调度的闪存存储设备;在所述调度时间窗口,调度所述待调度的闪存存储设备处理数据请求。籍此,通过第二调度参数,能够在调度时间窗口准确地调度闪存存储设备处理数据请求。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
62.在一个具体的例子中,在基于所述调度参数包括的所述第二调度参数,确定待调度的闪存存储设备时,基于所述调度参数包括的所述第二调度参数,对所述闪存存储设备进行排序,以获得所述闪存存储设备的排序结果;基于所述闪存存储设备的排序结果,确定所述待调度的闪存存储设备。籍此,通过闪存存储设备的第二调度参数,对闪存存储设备进行排序,能够准确地确定待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
63.在一个具体的例子中,当所述第二调度参数为所述闪存存储设备的逻辑空间的剩余大小时,可按照所述闪存存储设备的逻辑空间的剩余大小由大到小的顺序,对所述闪存存储设备进行排序,并将逻辑空间的剩余大小最大的闪存存储设备确定为待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
64.在一个具体的例子中,在所述调度时间窗口,调度所述待调度的闪存存储设备处理数据请求时,在所述调度时间窗口,通过调用所述待调度的闪存存储设备的数据请求的处理操作的控制接口传入处理数据请求的命令,调度所述待调度的闪存存储设备处理数据请求。籍此,通过调用所述待调度的闪存存储设备的数据请求的处理操作的控制接口传入处理数据请求的命令,能够准确地调度待调度的闪存存储设备处理数据请求。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
65.在步骤s203中,基于所述调度参数包括的所述第一调度参数,在所述调度时间窗口调度所述分布式闪存存储系统中剩余的闪存存储设备执行垃圾回收操作。
66.在本技术实施例中,所述剩余的闪存存储设备为所述分布式闪存存储系统中除去调度处理数据请求的闪存存储设备的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
67.在一些可选实施例中,在基于所述调度参数包括的所述第一调度参数,在所述调度时间窗口调度所述分布式闪存存储系统中剩余的闪存存储设备执行垃圾回收操作时,基于所述调度参数包括的所述第一调度参数,确定所述剩余的闪存存储设备中的待调度的闪存存储设备;在所述调度时间窗口,调度所述剩余的闪存存储设备中的待调度的闪存存储设备执行垃圾回收操作。籍此,通过第一调度参数,能够在调度时间窗口准确地调度剩余的闪存存储设备执行垃圾回收操作。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
68.在一个具体的例子中,在基于所述调度参数包括的所述第一调度参数,确定所述剩余的闪存存储设备中的待调度的闪存存储设备时,基于所述调度参数包括的所述第一调度参数,确定所述剩余的闪存存储设备的调度权重;基于所述剩余的闪存存储设备的调度权重,确定所述剩余的闪存存储设备中的待调度的闪存存储设备。籍此,通过剩余的闪存存储设备的调度权重,能够准确地确定剩余的闪存存储设备中的待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
69.在一个具体的例子中,在确定所述剩余的闪存存储设备的调度权重时,所述剩余的闪存存储设备的所述第一调度参数越小,所述剩余的闪存存储设备的调度权重越大;所述剩余的闪存存储设备的所述第一调度参数越大,所述剩余的闪存存储设备的调度权重越小。在确定所述剩余的闪存存储设备中的待调度的闪存存储设备时,通过rr(round-robin,轮询调度)算法,基于所述剩余的闪存存储设备的调度权重,确定所述剩余的闪存存储设备中的待调度的闪存存储设备。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
70.在一个具体的例子中,在所述调度时间窗口,调度所述剩余的闪存存储设备中的待调度的闪存存储设备执行垃圾回收操作时,在所述调度时间窗口,通过调用所述待调度的闪存存储设备的垃圾回收操作的控制接口传入垃圾回收操作的执行命令,调度所述待调度的闪存存储设备执行垃圾回收操作。籍此,通过调用所述待调度的闪存存储设备的垃圾回收操作的控制接口传入垃圾回收操作的执行命令,能够准确地调度待调度的闪存存储设备执行垃圾回收操作。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
71.在一个具体的例子中,如图2b所示,为分布式闪存存储系统的存储管理服务的调
度过程。在描述存储管理服务的调度过程之前,假设闪存存储设备的逻辑空间的剩余大小为l,闪存存储设备的闪存空间的剩余大小为n。存储管理服务的调度思想是首先调度闪存存储设备处理数据请求,在调度闪存存储设备处理数据请求的基础之上,再调度闪存存储设备执行垃圾回收操作。具体地,可根据闪存存储设备的l值由大到小的顺序,对分布式闪存存储系统中的所有闪存存储设备进行排序,选取l值最大的闪存存储设备为待调度处理数据请求的闪存存储设备。在选定待调度处理数据请求的闪存存储设备之后,可根据闪存存储设备的n值由小到大的顺序,对分布式闪存存储系统中的剩余的闪存存储设备进行排序,并根据排序结果确定分布式闪存存储系统中的剩余的闪存存储设备的调度权重,再根据分布式闪存存储系统中的剩余的闪存存储设备的调度权重确定待调度执行垃圾回收操作的闪存存储设备。在一个调度时隙内,通过分布式闪存存储系统中的存储管理服务,调度待调度执行垃圾回收操作的闪存存储设备执行垃圾回收操作,及待调度处理数据请求的闪存存储设备处理数据请求。通过这种方式,将垃圾回收操作和数据请求的处理操作分别调度到不同的闪存存储设备上执行,使得同一闪存存储设备中的垃圾回收操作与数据请求的处理操作错开执行,避免数据请求的处理操作受垃圾回收操作的影响,进而可充分发挥闪存存储设备的最佳性能表现,并且在一定程度上还可以提升闪存存储设备的吞吐带宽能力,从而发挥闪存存储设备的整体利用率。可以理解的是,以上描述仅为示例性的,本技术实施例对此不做任何限定。
72.通过本技术实施例提供的调度方法,采集分布式闪存存储系统中的闪存存储设备的调度参数,并基于调度参数包括的第二调度参数,在调度时间窗口调度闪存存储设备处理数据请求,再基于调度参数包括的第一调度参数,在调度时间窗口调度分布式闪存存储系统中剩余的闪存存储设备执行垃圾回收操作,其中,剩余的闪存存储设备为分布式闪存存储系统中除去调度处理数据请求的闪存存储设备的闪存存储设备,与现有的其它方式相比,使得分布式闪存存储系统中的闪存存储设备无需并行执行垃圾回收操作与数据请求的处理操作,通过调度不同的闪存存储设备分别执行垃圾回收操作和处理数据请求,使得分布式闪存存储系统中的闪存存储设备中的垃圾回收操作与数据请求的处理操作错开执行,保证数据请求的处理操作不受垃圾回收操作的干扰,进而保证数据请求获得最佳的服务质量,增强了分布式闪存存储系统的整体吞吐能力,并且还可以增强分布式闪存存储系统的抗数据请求洪峰的能力。
73.本实施例的调度方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、pc机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(pda)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如google glass、oculus rift、hololens、gear vr)等。
74.参照图3,示出了本技术实施例三中调度装置的结构示意图。
75.本实施例提供的调度装置包括:采集模块301,用于采集分布式闪存存储系统中的闪存存储设备的调度参数;调度模块302,用于基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度所述闪存存储设备处理数据请求。
76.本实施例的调度装置用于实现前述多个方法实施例中相应的调度方法,并具有相
应的方法实施例的有益效果,在此不再赘述。
77.参照图4,示出了本技术实施例四中调度装置的结构示意图。
78.本实施例提供的调度装置包括:采集模块401,用于采集分布式闪存存储系统中的闪存存储设备的调度参数;调度模块403,用于基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度所述闪存存储设备处理数据请求。
79.可选地,所述调度模块403之前,所述装置还包括:分组模块402,用于对所述分布式闪存存储系统中的所述闪存存储设备进行分组,以获得所述分布式闪存存储系统中的所述闪存存储设备的分组;所述调度模块403,包括:第一调度子模块4031,用于针对每个所述分组,基于所述调度参数包括的所述第一调度参数和所述第二调度参数,在所述调度时间窗口调度同一分组中不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求。
80.可选地,所述分布式闪存存储系统中的闪存存储节点布置有多个所述闪存存储设备,所述分组模块402,具体用于:以所述闪存存储节点为单位,对所述分布式闪存存储系统中的所述闪存存储设备进行分组,以获得所述分布式闪存存储系统中的所述闪存存储设备的分组。
81.可选地,所述调度模块403,包括:第二调度子模块4032,用于基于所述调度参数包括的所述第一调度参数,在所述调度时间窗口调度所述闪存存储设备执行垃圾回收操作;第三调度子模块4035,用于基于所述调度参数包括的所述第二调度参数,在所述调度时间窗口调度所述分布式闪存存储系统中剩余的闪存存储设备处理数据请求,其中,所述剩余的闪存存储设备为所述分布式闪存存储系统中除去调度执行垃圾回收操作的闪存存储设备的闪存存储设备。
82.可选地,所述第二调度子模块4032,包括:第一确定单元4033,用于基于所述调度参数包括的所述第一调度参数,确定待调度的闪存存储设备;第一调度单元4034,用于在所述调度时间窗口,调度所述待调度的闪存存储设备执行垃圾回收操作。
83.可选地,所述第一调度单元4034,具体用于:在所述调度时间窗口,通过调用所述待调度的闪存存储设备的垃圾回收操作的控制接口传入垃圾回收操作的执行命令,调度所述待调度的闪存存储设备执行垃圾回收操作。
84.可选地,所述第三调度子模块4035,包括:第二确定单元4036,用于基于所述调度参数包括的所述第二调度参数,确定所述剩余的闪存存储设备中的待调度的闪存存储设备;第二调度单元4037,用于在所述调度时间窗口,调度所述剩余的闪存存储设备中的待调度的闪存存储设备处理数据请求。
85.可选地,所述第二确定单元4036,具体用于:基于所述调度参数包括的所述第二调度参数,确定所述剩余的闪存存储设备的调度权重;基于所述剩余的闪存存储设备的调度权重,确定所述剩余的闪存存储设备中的待调度的闪存存储设备。
86.可选地,所述调度模块403,具体用于:基于所述调度参数包括的所述第二调度参数,在所述调度时间窗口调度所述闪存存储设备处理数据请求;基于所述调度参数包括的所述第一调度参数,在所述调度时间窗口调度所述分布式闪存存储系统中剩余的闪存存储设备执行垃圾回收操作,其中,所述剩余的闪存存储设备为所述分布式闪存存储系统中除
去调度处理数据请求的闪存存储设备的闪存存储设备。
87.可选地,所述采集模块401之前,所述装置还包括:配置模块404,用于为所述分布式闪存存储系统的存储管理服务配置从所述闪存存储设备中分离的垃圾回收操作的调度策略,以调度所述闪存存储设备执行垃圾回收操作。
88.可选地,所述第一调度参数包括所述闪存存储设备中的闪存空间的剩余大小,和/或所述第二调度参数包括所述闪存存储设备中的逻辑空间的剩余大小。
89.本实施例的调度装置用于实现前述多个方法实施例中相应的调度方法,并具有相应的方法实施例的有益效果,在此不再赘述。
90.图5为本技术实施例五中电子设备的结构示意图;该电子设备可以包括:
91.一个或多个处理器501;
92.计算机可读介质502,可以配置为存储一个或多个程序,
93.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一或实施例二所述的调度方法。
94.图6为本技术实施例六中电子设备的硬件结构;如图6所示,该电子设备的硬件结构可以包括:处理器601,通信接口602,计算机可读介质603和通信总线604;
95.其中处理器601、通信接口602、计算机可读介质603通过通信总线604完成相互间的通信;
96.可选地,通信接口602可以为通信模块的接口,如gsm模块的接口;
97.其中,处理器601具体可以配置为:采集分布式闪存存储系统中的闪存存储设备的调度参数;基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度所述闪存存储设备处理数据请求。
98.处理器601可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
99.计算机可读介质603可以是,但不限于,随机存取存储介质(random access memory,ram),只读存储介质(read only memory,rom),可编程只读存储介质(programmable read-only memory,prom),可擦除只读存储介质(erasable programmable read-only memory,eprom),电可擦除只读存储介质(electric erasable programmable read-only memory,eeprom)等。
100.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本技术的方法中限定的上述功能。需要说明的是,本技术所述的计算机可读介质可以是计算机可读信号介质或者计算机
可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(ram)、只读存储介质(rom)、可擦式可编程只读存储介质(eprom或闪存)、光纤、便携式紧凑磁盘只读存储介质(cd-rom)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
101.可以以一种或多种程序设计语言或其组合来编写配置为执行本技术的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
102.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
103.描述于本技术实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括采集模块和调度模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,采集模块还可以被描述为“采集分布式闪存存储系统中的闪存存储设备的调度参数的模块”。
104.作为另一方面,本技术还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一或实施例二所描述的调度方法。
105.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:采集分布式闪存存储系统中的闪存存储设备的调度参数;基于所述调度参数包括的第一调度参数和第二调度参数,在调度时间窗口调度不同的所述闪存存储设备分别执行垃圾回收操作和处理数据请求,其中,所述第一调度参数用于调度所述闪存存储设备执行垃圾回收操作,并且所述第二调度参数用于调度所述闪存存储设备处理数据请求。
106.在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
107.当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
108.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1