一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种RAID数据IO处理方法、装置、计算机设备及介质与流程

2021-11-05 21:50:00 来源:中国专利 TAG:

一种raid数据io处理方法、装置、计算机设备及介质
技术领域
1.本发明涉及存储技术领域,尤其涉及一种raid数据io处理方法、装置、计算机设备及介质。


背景技术:

2.在存储领域,系统处理数据的效率是影响系统整机性能的关键因素,其中在整个数据处理流程中,对内存的访问是非常频繁的,但是在处理用户数据时,不可避免的会对同一块内存进行反复重复操作(反复重复操作是指多次连续或间隔的对raid的物理盘上某个位置的数据进行读写操作),从而增加系统处理时间。
3.目前,传统raid数据io处理方式如下:当接收到io处理任务时,则为该io处理任务申请sce(strip cache)资源,用来保存对应的条带信息,当该io处理任务处理完成时则立即释放已申请的sce资源,后续再处理新的io任务时再重新按照上述过程为新的io任务申请sce资源在使用该资源后再次释放,此种方式需要反复的去申请sce资源,频繁的对内存进行操作使得处理效率较低,io处理任务的处理时间较长,因此亟需改进。


技术实现要素:

4.有鉴于此,有必要针对以上技术问题,提供优化内存资源使用、降低内存重复操作次数的一种raid数据io处理方法、装置、计算机设备及介质。
5.根据本发明的第一方面,提供了一种raid数据io处理方法,所述方法包括:
6.将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务;
7.响应于所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源;
8.响应于某一第一待处理io完成数据落盘,则判断所述目标条带对应的多个分块是否均完成io处理任务;
9.响应于所述目标条带的至少一个分块未完成io处理任务,则禁止释放某一第一待处理io所属的分块申请的sce资源;
10.响应于所述目标条带对应的多个分块均完成io处理任务,则释放全部已申请sce资源。
11.在一些实施例中,所述方法还包括:
12.响应于所述目标条带处理若干第一待处理io时申请的sce资源未释放,且接收到若干第二待处理io,则判断每一第二待处理io所属的分块是否与某一第一待处理io所属的分块相同;
13.响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io。
14.在一些实施例中,所述方法还包括:
15.响应于某一第二待处理io所属的分块与第一待处理io所属的分块均不同,将某一
第二待处理io视为若干第一待处理io;以及
16.返回并执行所述响应所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源的步骤。
17.在一些实施例中,所述响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io的步骤包括:
18.判断某一第一待处理io和某一第二待处理io是否为均属于相同位置数据读取操作;
19.响应于某一第一待处理io和某一第二待处理io属于相同位置数据读取操作,则从所述若干第一待处理io所属的分块已申请的sce资源中加载数据。
20.在一些实施例中,所述将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务的步骤包括:
21.将目标条带按照第一预设字节分为六个分块;
22.以每个io处理任务包含第二预设字节为单位接收io处理任务,其中,第一预设字节大于等于所述第二预设字节。
23.在一些实施例中,所述第一预设字节为256kb。
24.在一些实施例中,所述第二预设字节为4kb。
25.根据本发明的第二方面,提供了一种raid数据io处理装置,所述装置包括:
26.分块模块,用于将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务;
27.资源申请模块,用于在所述目标条带接收到若干第一待处理io时,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源;
28.任务监控模块,用于在所述若干第一待处理io完成数据落盘时,则判断所述目标条带对应的多个分块是否均完成io处理任务;
29.资源释放禁止模块,用于在所述目标条带的至少一个分块未完成io处理任务时,则禁止释放某一第一待处理io所属的分块申请的sce资源;
30.资源释放模块,用于在所述目标条带对应的多个分块均完成io处理任务时,则释放全部已申请sce资源。
31.根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
32.至少一个处理器;以及
33.存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的raid数据io处理方法。
34.根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的raid数据io处理方法。
35.上述一种raid数据io处理方法,通过将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务,当接收到第一待处理io时为每个第一待处理io所属的分块申请sce资源,当该目标条带的至少一个分块存在未处理完的io时,即使io任务处理完也不释放sce资源,由此避免了该条带上的某一分块再次进行io处理任务时重复申请sce资源,仅在该目标条带的所有多个分块都完成io处理任务时才会释放掉所有已申请的sce资源,实现
了优化资源分配,减少内存操作次数,提高raid数据io处理的性能。
36.此外,本发明还提供了一种raid数据io处理装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
38.图1为本发明一个实施例提供的一种raid数据io处理方法流程示意图;
39.图2为本发明又一个实施例提供的详细资源处理过程示意图;
40.图3为本发明又一个实施例提供的一种raid数据io处理装置的结构示意图;
41.图4本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
42.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
43.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
44.在一个实施例中,请参照图1所示,本发明提供了一种raid数据io处理方法,所述方法包括以下步骤:
45.s100,将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务;
46.s200,响应于所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源;
47.s300,响应于某一第一待处理io完成数据落盘,则判断所述目标条带对应的多个分块是否均完成io处理任务;
48.s400,响应于所述目标条带的至少一个分块未完成io处理任务,则禁止释放某一第一待处理io所属的分块申请的sce资源;
49.s500,响应于所述目标条带对应的多个分块均完成io处理任务,则释放全部已申请sce资源。
50.上述一种raid数据io处理方法,通过将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务,当接收到第一待处理io时为每个第一待处理io所属的分块申请sce资源,当该目标条带的至少一个分块存在未处理完的io时,即使io任务处理完也不释放sce资源,由此避免了该条带上的某一分块再次进行io处理任务时重复申请sce资源,仅在该目标条带的所有多个分块都完成io处理任务时才会释放掉所有已申请的sce资源,实现了优化资源分配,减少内存操作次数,提高raid数据io处理的性能。
51.在又一个实施例中,所述方法还包括:
52.响应于所述目标条带处理若干第一待处理io时申请的sce资源未释放,且接收到
若干第二待处理io,则判断每一第二待处理io所属的分块是否与某一第一待处理io所属的分块相同;
53.需要说明的是,第一待处理io和第二待处理io并没有本质区别,二者仅仅是条带在不同时刻是接收的io处理任务,第一待处理io是指目标条带还未执行任何io处理任务时接收的,而第二待处理io是在目标条带正在执行io处理任务时所接收的。
54.响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io。
55.在又一个实施例中,所述方法还包括:
56.响应于某一第二待处理io所属的分块与第一待处理io所属的分块均不同,将某一第二待处理io视为若干第一待处理io;以及
57.返回并执行所述响应所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源的步骤。
58.在又一个实施例中,前述的所述响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io的步骤包括以下步骤:
59.判断某一第一待处理io和某一第二待处理io是否为均属于相同位置数据读取操作;
60.响应于某一第一待处理io和某一第二待处理io属于相同位置数据读取操作,则从所述若干第一待处理io所属的分块已申请的sce资源中加载数据。
61.优选地,前述步骤s100具体包括以下子步骤:
62.将目标条带按照第一预设字节分为六个分块;
63.以每个io处理任务包含第二预设字节为单位接收io处理任务,其中,第一预设字节大于等于所述第二预设字节。
64.优选地,所述第一预设字节为256kb。
65.优选地,所述第二预设字节为4kb。
66.在又一个是实施例中,本实施例以raid5为例进行说明,具体的raid5数据io处理方法包括以下步骤:
67.步骤一:为每一个io分配一个tcb(transfer constructor block,转移构造函数块),使用tcb目的是为了管理当前io的信息,主要包含数据内容、长度、数据在内存中保存的位置等;
68.步骤二,raid5处理每个tcb时,将tcb拆分成raid5条带对应的分块进行处理,每个分块在内存中申请sce资源,用来保存对应的条带信息;
69.步骤三,在本条带未处理完成前,sce资源不释放,只有在条带对应的全部分块数据都处理完成后才释放资源;
70.步骤四,当下一个io下发下来时,可以通过缓存的sce资源达到数据缓存的目的。
71.下面结合图2,假设条带a(stripe a)为目标条带,其被分成六个分块分别记作分块1(strip1)到(strip6),假设每个io数据均为4kb,以下为处理各个io时资源申请的详细过程:
72.假设条带a接收到io1任务,该任务属于分块1,此时为分块1申请相应的sce资源,
在io1任务处理完成前接收到io2任务,由于该任务同样属于分块1,此时io2任务使用分块1申请相应的sce资源而无需再申请,后续又处理io3任务,io3任务属于分块2,虽然此时该条带已经执行了io处理任务,但前两次操作是并没有为该分块申请sce资源,此时需要为io3任务所属的分块2申请sce资源,加收后续条带a无后续其它io任务,对于分块1和分块2已申请的sce资源只有在条带a全部处理完(即io1、io2、io3任务都处理完成)时才会释放掉分别为分块1和分块2已申请的两个sce资源。也就是说在io1数据落盘成功后,不会将申请的资源释放,而是保存在内存中,当用户再次读取io1位置数据时如果该条带还有其它任务没有处理完,此时已申请的sce资源仍然有效,可直接将已申请的sce资源数据返回给用户,极大的缩短了数据的传输路径,提高数据访问效率和整机性能。
73.本发明的方法至少具备以下有益技术效果:
74.(1)通过将条带分为多个数据块,然后以每个分块为单位申请sce资源,将sce资源释放的时机改成整个条带的分块都处理完时才释放,极大的减少了sce资源的申请次数;
75.(2)藉由延长了已申请的sce资源的保持时间,使得重复读取操作无需反复从对物理盘进行操作,可通未释放的sce资源中加载,简化了数据传输的路径,提升重复读取处理的效率,提高数据访问效率和整机性能。
76.根据本发明的又一方面,请结合图3所示,本发明还提供了一种raid数据io处理装置60,所述装置包括:
77.分块模块61,用于将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务;
78.资源申请模块62,用于在所述目标条带接收到若干第一待处理io时,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源;
79.任务监控模块63,用于在所述若干第一待处理io完成数据落盘时,则判断所述目标条带对应的多个分块是否均完成io处理任务;
80.资源释放禁止模块64,用于在所述目标条带的至少一个分块未完成io处理任务时,则禁止释放某一第一待处理io所属的分块申请的sce资源;
81.资源释放模块65,用于在所述目标条带对应的多个分块均完成io处理任务时,则释放全部已申请sce资源。
82.上述一种raid数据io处理装置,通过将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务,当接收到第一待处理io时为每个第一待处理io所属的分块申请sce资源,当该目标条带的至少一个分块存在未处理完的io时,即使io任务处理完也不释放sce资源,由此避免了该条带上的某一分块再次进行io处理任务时重复申请sce资源,仅在该目标条带的所有多个分块都完成io处理任务时才会释放掉所有已申请的sce资源,实现了优化资源分配,减少内存操作次数,提高raid数据io处理的性能。
83.需要说明的是,关于raid数据io处理装置的具体限定可以参见上文中对raid数据io处理方法的限定,在此不再赘述。上述raid数据io处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
84.根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其
内部结构图请参照图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的raid数据io处理方法,具体来说,所述方法包括以下步骤:
85.将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务;
86.响应于所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源;
87.响应于某一第一待处理io完成数据落盘,则判断所述目标条带对应的多个分块是否均完成io处理任务;
88.响应于所述目标条带的至少一个分块未完成io处理任务,则禁止释放某一第一待处理io所属的分块申请的sce资源;
89.响应于所述目标条带对应的多个分块均完成io处理任务,则释放全部已申请sce资源。
90.在一些实施例中,所述方法还包括:
91.响应于所述目标条带处理若干第一待处理io时申请的sce资源未释放,且接收到若干第二待处理io,则判断每一第二待处理io所属的分块是否与某一第一待处理io所属的分块相同;
92.响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io。
93.在一些实施例中,所述方法还包括:
94.响应于某一第二待处理io所属的分块与第一待处理io所属的分块均不同,将某一第二待处理io视为若干第一待处理io;以及
95.返回并执行所述响应所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源的步骤。
96.在一些实施例中,所述响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io的步骤包括:
97.判断某一第一待处理io和某一第二待处理io是否为均属于相同位置数据读取操作;
98.响应于某一第一待处理io和某一第二待处理io属于相同位置数据读取操作,则从所述若干第一待处理io所属的分块已申请的sce资源中加载数据。
99.在一些实施例中,所述将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务的步骤包括:
100.将目标条带按照第一预设字节分为六个分块;
101.以每个io处理任务包含第二预设字节为单位接收io处理任务,其中,第一预设字节大于等于所述第二预设字节。
102.在一些实施例中,所述第一预设字节为256kb。
103.在一些实施例中,所述第二预设字节为4kb。根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的raid数据io处理方法,具体来说,包括执行以下步骤:
104.将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务;
105.响应于所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源;
106.响应于某一第一待处理io完成数据落盘,则判断所述目标条带对应的多个分块是否均完成io处理任务;
107.响应于所述目标条带的至少一个分块未完成io处理任务,则禁止释放某一第一待处理io所属的分块申请的sce资源;
108.响应于所述目标条带对应的多个分块均完成io处理任务,则释放全部已申请sce资源。
109.在一些实施例中,所述方法还包括:
110.响应于所述目标条带处理若干第一待处理io时申请的sce资源未释放,且接收到若干第二待处理io,则判断每一第二待处理io所属的分块是否与某一第一待处理io所属的分块相同;
111.响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io。
112.在一些实施例中,所述方法还包括:
113.响应于某一第二待处理io所属的分块与第一待处理io所属的分块均不同,将某一第二待处理io视为若干第一待处理io;以及
114.返回并执行所述响应所述目标条带接收到若干第一待处理io,则获取每一第一待处理io所属的分块并为所属的分块申请sce资源的步骤。
115.在一些实施例中,所述响应于某一第二待处理io所属的分块与某一第一待处理io所属的分块相同,则使用某一第一待处理io所属的分块已申请的sce资源处理某一第二待处理io的步骤包括:
116.判断某一第一待处理io和某一第二待处理io是否为均属于相同位置数据读取操作;
117.响应于某一第一待处理io和某一第二待处理io属于相同位置数据读取操作,则从所述若干第一待处理io所属的分块已申请的sce资源中加载数据。
118.在一些实施例中,所述将目标条带分成多个分块,并以固定数据量大小接收若干io处理任务的步骤包括:
119.将目标条带按照第一预设字节分为六个分块;
120.以每个io处理任务包含第二预设字节为单位接收io处理任务,其中,第一预设字节大于等于所述第二预设字节。
121.在一些实施例中,所述第一预设字节为256kb。
122.在一些实施例中,所述第二预设字节为4kb。
123.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以
通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
124.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
125.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献