CN111414317B - 一种io请求处理方法、装置、设备及可读存储介质 - Google Patents
一种io请求处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111414317B CN111414317B CN202010153499.5A CN202010153499A CN111414317B CN 111414317 B CN111414317 B CN 111414317B CN 202010153499 A CN202010153499 A CN 202010153499A CN 111414317 B CN111414317 B CN 111414317B
- Authority
- CN
- China
- Prior art keywords
- request
- stripe
- blocks
- block
- target address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000013507 mapping Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种IO请求处理方法、装置、设备及可读存储介质。本申请公开的方法包括:接收客户端发送的IO请求;确定IO请求对应的目标地址;查询目标地址所属的条带块;利用与条带块映射的处理器内核处理IO请求;其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。当前存储系统中的RAID对应有至少两个处理器内核,也就是至少有两个处理器内核能够并行处理IO请求,从而提高了存储系统和RAID的读写性能。相应地,本申请公开的一种IO请求处理装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种IO请求处理方法、装置、设备及可读存储介质。
背景技术
在现有的多核存储系统中,一个RAID绑定一个处理器内核,这样所有访问该RAID的IO请求都通过这一个处理器内核进行串行处理,这种方法虽然可以保证数据的读写一致性,但是由于所有请求由一个处理器内核串行处理,因此降低了存储系统和RAID的读写性能。
因此,如何在保证数据的读写一致性的同时,提高存储系统和RAID的读写性能,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种IO请求处理方法、装置、设备及可读存储介质,以在保证数据的读写一致性的同时,提高存储系统和RAID的读写性能。其具体方案如下:
第一方面,本申请提供了一种IO请求处理方法,包括:
接收客户端发送的IO请求;
确定所述IO请求对应的目标地址;
查询所述目标地址所属的条带块;
利用与所述条带块映射的处理器内核处理所述IO请求;
其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。
优选地,所述利用与所述条带块映射的处理器内核处理所述IO请求之前,还包括:
判断所述目标地址所属的条带块的个数是否为一个;
若是,则执行所述利用与所述条带块映射的处理器内核处理所述IO请求的步骤。
优选地,还包括:
若所述目标地址所属的条带块的个数不是一个,则在目标地址所属的条带块与不同的处理器内核具有映射关系时,拆分所述IO请求,获得多个IO子请求,利用每个IO子请求分别对应的处理器内核并行处理所述多个IO子请求。
优选地,所述利用每个IO子请求分别对应的处理器内核并行处理所述多个IO子请求之后,还包括:
合并每个IO子请求对应的处理结果,获得合并结果,并将所述合并结果返回至所述客户端。
优选地,所述判断所述目标地址所属的条带块的个数是否为一个,包括:
判断所述目标地址包括的起始地址和结尾地址是否属于同一个条带块。
优选地,所述利用与所述条带块映射的处理器内核处理所述IO请求之前,还包括:
利用哈希算法将所述条带块映射至所述处理器内核。
优选地,所述利用哈希算法将所述条带块映射至所述处理器内核,包括:
对所述条带块的标识信息进行取余运算,获得目标余数;
查询所述处理器包括的所有处理器内核的ID;
将所述条带块映射至与所述目标余数相同的ID对应的处理器内核。
优选地,每个条带块包括的条带个数为所述RAID的条带宽度的整数倍。
第二方面,本申请提供了一种IO请求处理装置,包括:
接收模块,用于接收客户端发送的IO请求;
确定模块,用于确定所述IO请求对应的目标地址;
查询模块,用于查询所述目标地址所属的条带块;
处理模块,用于利用与所述条带块映射的处理器内核处理所述IO请求;
其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。
第三方面,本申请提供了一种IO请求处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的IO请求处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的IO请求处理方法。
通过以上方案可知,本申请提供了一种IO请求处理方法,包括:接收客户端发送的IO请求;确定所述IO请求对应的目标地址;查询所述目标地址所属的条带块;利用与所述条带块映射的处理器内核处理所述IO请求;其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。
可见,该方法在接收到客户端发送的IO请求后,确定IO请求对应的目标地址;然后查询目标地址所属的条带块;并利用与条带块映射的处理器内核处理IO请求。由于当前存储系统中的RAID被划分为多个条带块,且所有条带块与当前存储系统中的至少两个处理器内核具有映射关系,也就是所有条带块至少被划分为两个集合,一个集合对应一个处理器内核。因此当前存储系统中的RAID对应有至少两个处理器内核,那么对于客户端发送的IO请求,便可以利用至少两个处理器内核进行处理。也即:将客户端发送的IO请求分布到至少两个处理器内核上,使得更多的处理器内核并行处理更多的IO请求,从而提高存储系统和RAID的读写性能。
相应地,本申请提供的一种IO请求处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种IO请求处理方法流程图;
图2为本申请公开的第二种IO请求处理方法流程图;
图3为本申请公开的一种条带块划分示意图;
图4为本申请公开的一种IO请求处理装置示意图;
图5为本申请公开的一种IO请求处理设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,一个RAID绑定一个处理器内核,所有请求由一个处理器内核串行处理,因此降低了存储系统和RAID的读写性能。为此,本申请提供了一种IO请求处理方案,能够提高存储系统和RAID的读写性能。
参见图1所示,本申请实施例公开了第一种IO请求处理方法,包括:
S101、接收客户端发送的IO请求。
在本实施例中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。
例如:若当前存储系统中的RAID被划分为10个条带块,且当前存储系统中的处理器包括10个处理器内核,即:处理器为十核。那么一个条带块对应一个处理器内核,故而所有条带块与10个处理器内核具有映射关系。若当前存储系统中的RAID被划分为10个条带块,且当前存储系统中的处理器包括2个处理器内核,即:处理器为双核。那么五个条带块对应一个处理器内核,故而所有条带块与两个处理器内核具有映射关系。如此一来,当前存储系统中的RAID就与至少两个处理器内核具有对应关系,因此可以避免所有请求由一个处理器内核串行处理,从而提高了存储系统和RAID的读写性能。
S102、确定IO请求对应的目标地址。
其中,IO请求为读或写请求,每个IO请求对应有当前需要访问的目标地址。目标地址也可能是一个地址段。
S103、查询目标地址所属的条带块。
需要说明的是,将RAID划分为多个条带块时可按照RAID中的各个条带的地址进行划分。其中,RAID由多个条带组成,且每个条带对应有地址,因此可将地址进行分段,那么获得的每个地址段对应一个条带块,一个条带块中包括多个条带。故而在确定当前IO请求需要访问的目标地址后,便可进一步确定该目标地址属于哪个地址段,也就是确定其属于哪个条带块。当目标地址为地址段时,那么包含该目标地址的条带块即为当前目标地址所属的条带块。
S104、利用与条带块映射的处理器内核处理IO请求。
确定目标地址所属的条带块后,便可利用与条带块映射的处理器内核处理当前IO请求。由于不同条带块可能与不同的处理器内核相互映射,因此本实施例能够将不同IO请求分布至不同的处理器内核上,从而使得不同的处理器内核处理不同的IO请求,实现IO请求的分布均衡处理。
在一种具体实施方式中,利用与条带块映射的处理器内核处理IO请求之前,还包括:判断目标地址所属的条带块的个数是否为一个;若是,则执行利用与条带块映射的处理器内核处理IO请求的步骤。若否,则在目标地址所属的条带块与不同的处理器内核具有映射关系时,拆分IO请求,获得多个IO子请求,利用每个IO子请求分别对应的处理器内核并行处理多个IO子请求。
具体的,当目标地址对应的地址段属于不同的条带块时,目标地址所属的条带块的个数就可能为多个,那么在目标地址所属的条带块与不同的处理器内核具有映射关系时,就需要对目标地址进行拆分,也就是按照当前涉及的这些条带块分别对应的地址段来划分目标地址,从而获得多个子地址段,一个子地址段对应一个IO子请求。在目标地址所属的条带块与同一个处理器内核具有映射关系时,还是直接行利用与条带块映射的处理器内核处理IO请求的步骤。例如:目标地址为1~10,而当前存储系统中的RAID被划分为两个条带块,这两个条带块分别对应地址1~5和6~10,此时目标地址所属的条带块的个数为两个,且这两个条带块与不同的处理器内核具有映射关系,那么将目标地址1~10划分为1~5和6~10,然后利用这两个条带块分别对应的处理器内核并行处理这两个IO子请求。
在一种具体实施方式中,利用每个IO子请求分别对应的处理器内核并行处理多个IO子请求之后,还包括:合并每个IO子请求对应的处理结果,获得合并结果,并将合并结果返回至客户端。
在一种具体实施方式中,判断目标地址所属的条带块的个数是否为一个,包括:判断目标地址包括的起始地址和结尾地址是否属于同一个条带块。
在一种具体实施方式中,利用与条带块映射的处理器内核处理IO请求之前,还包括:利用哈希算法将条带块映射至处理器内核。其中,利用哈希算法将条带块映射至处理器内核,包括:对条带块的标识信息进行取余运算,获得目标余数;查询处理器包括的所有处理器内核的ID;将条带块映射至与目标余数相同的ID对应的处理器内核。
利用哈希算法将条带块映射至处理器内核,可使得各个条带块均衡映射至不同的处理器内核,从而保障不同处理器内核的负载保持均衡。例如:若当前存储系统中的RAID被划分为4个条带块,标识号分别为0、1、2、3,且当前存储系统中的处理器包括2个处理器内核,标识号分别为0、1,即:处理器为双核。那么两个条带块对应一个处理器内核,故而所有条带块与2个处理器内核具有映射关系。此时这4个条带块与这2个处理器内核的具体映射关系为:0号和2号条带块都对应0号处理器内核;1号和3号条带块都对应1号处理器内核。若某一处理器内核有其他业务需要处理,可以设置其不参与条带块和处理器内核的映射。
在一种具体实施方式中,每个条带块包括的条带个数为RAID的条带宽度的整数倍。其中,不同RAID的条带宽度不同。当每个条带块包括的条带个数为RAID的条带宽度的整数倍时,不同条带块包括的数据块和校验块的分布一致,可以为后续IO请求处理过程中的寻址操作提供帮助,从而提高IO请求处理效率。
可见,本申请实施例在接收到客户端发送的IO请求后,确定IO请求对应的目标地址;然后查询目标地址所属的条带块;并利用与条带块映射的处理器内核处理IO请求。由于当前存储系统中的RAID被划分为多个条带块,且所有条带块与当前存储系统中的至少两个处理器内核具有映射关系,也就是所有条带块至少被划分为两个集合,一个集合对应一个处理器内核。因此当前存储系统中的RAID对应有至少两个处理器内核,那么对于客户端发送的IO请求,便可以利用至少两个处理器内核进行处理。也即:将客户端发送的IO请求分布到至少两个处理器内核上,使得更多的处理器内核并行处理更多的IO请求,从而提高存储系统和RAID的读写性能。
参见图2所示,本申请实施例公开了第二种IO请求处理方法,包括:
S201、接收客户端发送的多个IO请求;
S202、确定每个IO请求分别对应的目标地址;
S203、查询每个目标地址所属的条带块;
S204、利用与每个条带块分别映射的处理器内核并行处理多个IO请求。
其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。
需要说明的是,若当前存储系统在同一时刻接收到多个IO请求,那么按照S201-S204的方法,可利用不同处理器内核并行处理这些IO请求,从而提高并发处理性能。其中,若这些IO请求中有个别IO请求需要拆分,则按照上述实施例提供的相应方法将其拆分为多个IO子请求后进行处理。若一个处理器内核处有多个请求等待处理,则按照先入先出原则按序处理并返回。
本实施例中的一个RAID绑定多个处理器内核,且一个RAID被划分为多个条带块,这些条带块均匀映射到各个处理器内核上,保证了数据读写的一致性。同时,利用一个处理器中的处理器内核并行处理IO请求,还可以使得单个处理器的资源得到充分利用,不至于浪费处理器资源,处理过程中各个处理器内核均衡负载,也不至于因单个处理器内核负载过高而导致请求处理停滞,因此提升了系统整体性能。
需要说明的是,本实施例中的其他实现步骤与上述实施例相同或类似,故本实施例在此不再赘述。
由上可见,本实施例可以将客户端发送的IO请求分布到不同的处理器内核上,使得更多的处理器内核并行处理更多的IO请求,从而提高了存储系统和RAID的读写性能。
参见图3所示,图3为本实施例公开的一种条带块划分示意图。本申请实施例将RAID划分为多个条带块。每个条带块的大小=条带大小×该条带块包括的条带个数。在本实施例中,每个条带块包括的条带个数等于RAID的条带宽度。
请参见图3,该RAID为RAID-5,其条带宽度为4,从Member0~Member3。每个条带块包括4个条带。在不同条带块中,校验块与数据块的分布一致。
在条带块1中,校验块与数据块的分布如下:第一个条带包括:Parity(校验块)、Strip0(数据块0)、Strip1(数据块1)、Strip2(数据块2);第二个条带包括:Strip5(数据块5)、Parity(校验块)、Strip3(数据块3)、Strip4(数据块4);第三个条带包括:Strip7(数据块7)、Strip8(数据块8)、Parity(校验块)、Strip6(数据块6);第四个条带包括:Strip9(数据块9)、Strip10(数据块10)、Strip11(数据块11)、Parity(校验块)。可见,在条带块1中,第一个校验块位于第一个条带的第一个位置,第二个校验块位于第二个条带的第二个位置,第三个校验块位于第三个条带的第三个位置,第四个校验块位于第四个条带的第四个位置,整体呈“\”分布。
在条带块2中,校验块与数据块的分布如下:第一个条带包括:Parity(校验块)、Strip12(数据块12)、Strip13(数据块13)、Strip14(数据块14);第二个条带包括:Strip15(数据块15)、Parity(校验块)、Strip16(数据块16)、Strip17(数据块17);第三个条带包括:Strip18(数据块18)、Strip19(数据块19)、Parity(校验块)、Strip20(数据块20);第四个条带包括:Strip21(数据块21)、Strip22(数据块22)、Strip23(数据块23)、Parity(校验块)。可见,在条带块2中,第一个校验块位于第一个条带的第一个位置,第二个校验块位于第二个条带的第二个位置,第三个校验块位于第三个条带的第三个位置,第四个校验块位于第四个条带的第四个位置,整体也呈“\”分布。
故而在不同条带块中,校验块与数据块的分布一致,可以为后续IO请求处理过程中的寻址操作提供帮助,从而提高IO请求处理效率。在本实施例中,每个条带块包括的条带个数为RAID的条带宽度的1倍。
对于客户端(client)过来的IO请求,根据IO请求对应地址确定当前IO请求对应的条带块。若当前仅涉及一个条带块,则直接利用哈希取余算法建立该条带块与某一个处理器内核的映射关系,并利用该处理器内核处理当前IO请求;若当前涉及多个条带块,且在这多个条带块与不同的处理器内核具有映射关系,那么拆分当前IO请求,利用不同的处理器内核并行处理拆分获得的IO子请求,理想情况下,这些拆分获得的IO子请求会均匀分配到各个处理器内核上,从而提高存储系统的性能。这些IO子请求被处理完毕后,当前IO请求的主线程等待所有IO子请求对应的处理结果,获取并合并这些处理结果,然后返回给client。
在本实施例中,一个RAID绑定多个处理器内核,RAID包括多个条带块,这些条带块均匀映射到处理器的各个处理器内核上,从而提升了RAID并发性能,能够保证数据读写的一致性,还提升存储系统的整体性能。
下面对本申请实施例提供的一种IO请求处理装置进行介绍,下文描述的一种IO请求处理装置与上文描述的一种IO请求处理方法可以相互参照。
参见图4所示,本申请实施例公开了一种IO请求处理装置,包括:
接收模块401,用于接收客户端发送的IO请求;
确定模块402,用于确定IO请求对应的目标地址;
查询模块403,用于查询目标地址所属的条带块;
处理模块404,用于利用与条带块映射的处理器内核处理IO请求;
其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系。
在一种具体实施方式中,利用与条带块映射的处理器内核处理IO请求之前,还包括:
判断模块,用于判断目标地址所属的条带块的个数是否为一个;
执行模块,用于若目标地址所属的条带块的个数为一个,则执行利用与条带块映射的处理器内核处理IO请求的步骤。
在一种具体实施方式中,还包括:
拆分模块,用于若目标地址所属的条带块的个数不是一个,则在目标地址所属的条带块与不同的处理器内核具有映射关系时,拆分IO请求,获得多个IO子请求,利用每个IO子请求分别对应的处理器内核并行处理多个IO子请求。
在一种具体实施方式中,还包括:
返回模块,用于合并每个IO子请求对应的处理结果,获得合并结果,并将合并结果返回至客户端。
在一种具体实施方式中,判断模块具体同于:
判断目标地址包括的起始地址和结尾地址是否属于同一个条带块。
在一种具体实施方式中,还包括:
映射模块,用于利用哈希算法将条带块映射至处理器内核。
在一种具体实施方式中,映射模块包括:
计算单元,用于对条带块的标识信息进行取余运算,获得目标余数;
查询单元,用于查询处理器包括的所有处理器内核的ID;
映射单元,用于将条带块映射至与目标余数相同的ID对应的处理器内核。
在一种具体实施方式中,每个条带块包括的条带个数为RAID的条带宽度的整数倍。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种IO请求处理装置,该装置可以将客户端发送的IO请求分布到不同的处理器内核上,使得更多的处理器内核并行处理更多的IO请求,从而提高了存储系统和RAID的读写性能。
下面对本申请实施例提供的一种IO请求处理设备进行介绍,下文描述的一种IO请求处理设备与上文描述的一种IO请求处理方法及装置可以相互参照。
参见图5所示,本申请实施例公开了一种IO请求处理设备,包括:
存储器501,用于保存计算机程序;
处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种IO请求处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的IO请求处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种IO请求处理方法,其特征在于,包括:
接收客户端发送的IO请求;
确定所述IO请求对应的目标地址;
查询所述目标地址所属的条带块;一个条带块中包括多个条带;
利用与所述条带块映射的处理器内核处理所述IO请求;
若所述目标地址所属的条带块的个数不是一个,则在所述目标地址所属的条带块与不同的处理器内核具有映射关系时,拆分所述IO请求,获得多个IO子请求,利用每个IO子请求分别对应的处理器内核并行处理所述多个IO子请求;
其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系;
其中,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系,包括:所有条带块均匀映射到各个处理器内核上。
2.根据权利要求1所述的IO请求处理方法,其特征在于,所述利用与所述条带块映射的处理器内核处理所述IO请求之前,还包括:
判断所述目标地址所属的条带块的个数是否为一个;
若是,则执行所述利用与所述条带块映射的处理器内核处理所述IO请求的步骤。
3.根据权利要求2所述的IO请求处理方法,其特征在于,所述利用每个IO子请求分别对应的处理器内核并行处理所述多个IO子请求之后,还包括:
合并每个IO子请求对应的处理结果,获得合并结果,并将所述合并结果返回至所述客户端。
4.根据权利要求2所述的IO请求处理方法,其特征在于,所述判断所述目标地址所属的条带块的个数是否为一个,包括:
判断所述目标地址包括的起始地址和结尾地址是否属于同一个条带块。
5.根据权利要求1所述的IO请求处理方法,其特征在于,所述利用与所述条带块映射的处理器内核处理所述IO请求之前,还包括:
利用哈希算法将所述条带块映射至所述处理器内核。
6.根据权利要求5所述的IO请求处理方法,其特征在于,所述利用哈希算法将所述条带块映射至所述处理器内核,包括:
对所述条带块的标识信息进行取余运算,获得目标余数;
查询所述处理器包括的所有处理器内核的ID;
将所述条带块映射至与所述目标余数相同的ID对应的处理器内核。
7.根据权利要求1至6任一项所述的IO请求处理方法,其特征在于,每个条带块包括的条带个数为所述RAID的条带宽度的整数倍。
8.一种IO请求处理装置,其特征在于,包括:
接收模块,用于接收客户端发送的IO请求;
确定模块,用于确定所述IO请求对应的目标地址;
查询模块,用于查询所述目标地址所属的条带块;一个条带块中包括多个条带;
处理模块,用于利用与所述条带块映射的处理器内核处理所述IO请求;
若所述目标地址所属的条带块的个数不是一个,则在所述目标地址所属的条带块与不同的处理器内核具有映射关系时,拆分所述IO请求,获得多个IO子请求,利用每个IO子请求分别对应的处理器内核并行处理所述多个IO子请求;
其中,当前存储系统中的RAID被划分为多个条带块,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系;
其中,所有条带块与当前存储系统中的至少两个处理器内核具有映射关系,包括:所有条带块均匀映射到各个处理器内核上。
9.一种IO请求处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的IO请求处理方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的IO请求处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010153499.5A CN111414317B (zh) | 2020-03-06 | 2020-03-06 | 一种io请求处理方法、装置、设备及可读存储介质 |
PCT/CN2020/087103 WO2021174654A1 (zh) | 2020-03-06 | 2020-04-27 | 一种io请求处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010153499.5A CN111414317B (zh) | 2020-03-06 | 2020-03-06 | 一种io请求处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414317A CN111414317A (zh) | 2020-07-14 |
CN111414317B true CN111414317B (zh) | 2022-11-25 |
Family
ID=71490936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010153499.5A Active CN111414317B (zh) | 2020-03-06 | 2020-03-06 | 一种io请求处理方法、装置、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111414317B (zh) |
WO (1) | WO2021174654A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015672A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | 一种存储系统中数据处理方法、装置、设备及存储介质 |
CN113326005B (zh) * | 2021-06-11 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种raid存储系统的读写方法和装置 |
CN113742098B (zh) * | 2021-08-20 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种内核消息处理方法、装置、设备及存储介质 |
CN114780025B (zh) * | 2022-03-29 | 2024-08-06 | 华中科技大学 | 软件raid请求处理方法、控制器及raid存储系统 |
CN117539407B (zh) * | 2024-01-04 | 2024-03-29 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720596B1 (en) * | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
CN107526551A (zh) * | 2017-09-14 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种cpu多核的io请求处理方法、装置及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934803B2 (en) * | 2002-05-29 | 2005-08-23 | Lsi Logic Corporation | Methods and structure for multi-drive mirroring in a resource constrained raid controller |
CN102023809B (zh) * | 2009-09-21 | 2012-10-17 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
CN103488435B (zh) * | 2013-09-24 | 2017-08-04 | 华为技术有限公司 | Raid子系统及其数据读写方法 |
CN103984508A (zh) * | 2014-05-15 | 2014-08-13 | 中国人民解放军国防科学技术大学 | 基于飞腾处理器平台的raid多线程并发读写方法 |
CN110806942B (zh) * | 2019-11-08 | 2024-05-07 | 广州华多网络科技有限公司 | 数据处理的方法和装置 |
-
2020
- 2020-03-06 CN CN202010153499.5A patent/CN111414317B/zh active Active
- 2020-04-27 WO PCT/CN2020/087103 patent/WO2021174654A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720596B1 (en) * | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
CN107526551A (zh) * | 2017-09-14 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种cpu多核的io请求处理方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
pGTIOL:GeoTIFF数据并行I/O库;胡树坚等;《地球信息科学学报》;20150515(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111414317A (zh) | 2020-07-14 |
WO2021174654A1 (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414317B (zh) | 一种io请求处理方法、装置、设备及可读存储介质 | |
US9336147B2 (en) | Cache and memory allocation for virtual machines | |
CN102819497B (zh) | 一种内存分配方法、装置及系统 | |
US10310986B1 (en) | Memory management unit for shared memory allocation | |
CN110442308B (zh) | 一种数据块存储方法、装置、设备及存储介质 | |
CN103049392B (zh) | 缓存目录的实现方法及装置 | |
EP3992792A1 (en) | Resource allocation method, storage device, and storage system | |
US11474919B2 (en) | Method for managing multiple disks, electronic device and computer program product | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN111984407A (zh) | 一种数据块读写性能优化方法、系统、终端及存储介质 | |
CN109960569B (zh) | 一种虚拟化处理方法及装置 | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
CN110750336A (zh) | 一种OpenStack虚拟机内存热扩容方法 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
US9697048B2 (en) | Non-uniform memory access (NUMA) database management system | |
CN115793957A (zh) | 写数据的方法、装置及计算机存储介质 | |
CN113905252B (zh) | 直播间的数据存储方法、装置、电子设备及存储介质 | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN112800123B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115562871A (zh) | 内存分配管理的方法和装置 | |
US20160232166A1 (en) | Method and Apparatus for Accessing File | |
CN112395256B (zh) | 一种数据读取方法、电子设备及计算机存储介质 | |
CN114282968A (zh) | 一种流水号的获取方法、装置、服务器和存储介质 | |
CN104346298A (zh) | 基于智能卡的数据处理方法、装置及智能卡 | |
CN113626383A (zh) | 一种数据处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |