[go: up one dir, main page]

CN103617136B - SCSI drive side and I/O request control method - Google Patents

SCSI drive side and I/O request control method Download PDF

Info

Publication number
CN103617136B
CN103617136B CN201310647835.1A CN201310647835A CN103617136B CN 103617136 B CN103617136 B CN 103617136B CN 201310647835 A CN201310647835 A CN 201310647835A CN 103617136 B CN103617136 B CN 103617136B
Authority
CN
China
Prior art keywords
requests
physical block
block addresses
logical
storage system
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
Application number
CN201310647835.1A
Other languages
Chinese (zh)
Other versions
CN103617136A (en
Inventor
杨幸坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310647835.1A priority Critical patent/CN103617136B/en
Publication of CN103617136A publication Critical patent/CN103617136A/en
Application granted granted Critical
Publication of CN103617136B publication Critical patent/CN103617136B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种SCSI驱动侧及I/O请求的控制方法。该控制方法包括:根据接收的多个I/O请求中的逻辑块地址获取对应的物理块地址,其中多个I/O请求为对SAN存储系统中多个逻辑空间的逻辑块进行数据访问的请求;根据物理块地址的连续性,将连续的物理块地址对应的I/O请求进行合并;将合并后的I/O请求聚合于一个SCSI命令发送至SAN存储系统。通过上述方式,本发明能够对分布于不同逻辑空间的I/O请求进行合并,从而提升数据访问时多个I/O请求的合并概率,减少I/O请求在传输通道上的交互,显著提升I/O请求的访问性能。

The invention provides a SCSI drive side and a control method for I/O requests. The control method includes: obtaining the corresponding physical block addresses according to the logical block addresses in the received multiple I/O requests, wherein the multiple I/O requests are for data access to logical blocks in multiple logical spaces in the SAN storage system Request; according to the continuity of the physical block addresses, combine the I/O requests corresponding to the continuous physical block addresses; aggregate the combined I/O requests into one SCSI command and send it to the SAN storage system. Through the above method, the present invention can merge I/O requests distributed in different logical spaces, thereby increasing the probability of merging multiple I/O requests during data access, reducing the interaction of I/O requests on the transmission channel, and significantly improving Access performance of I/O requests.

Description

SCSI驱动侧及I/O请求的控制方法SCSI drive side and control method of I/O request

技术领域technical field

本发明涉及数据访问及存储技术领域,特别是涉及一种SCSI驱动侧及I/O请求的控制方法。The invention relates to the technical field of data access and storage, in particular to a SCSI drive side and a control method for I/O requests.

背景技术Background technique

当前,SAN(Storage Area Network,存储区域网络)存储系统一般包括多个磁盘设备提供的物理块(Physical Blocks,PB),这些物理块通过RAID(Redundant Arrays ofInexpensive Disks,磁盘冗余阵列)技术等组合成存储资源池,并且将存储资源池分配为多个逻辑空间(Logical Unit Number,LUN),每一逻辑空间包含一个或多个逻辑块(Logical Blocks,LB)。Currently, SAN (Storage Area Network, storage area network) storage systems generally include physical blocks (Physical Blocks, PB) provided by multiple disk devices, and these physical blocks are combined by RAID (Redundant Arrays of Inexpensive Disks, redundant array of disks) technology, etc. A storage resource pool is formed, and the storage resource pool is allocated into multiple logical spaces (Logical Unit Number, LUN), and each logical space includes one or more logical blocks (Logical Blocks, LB).

在对逻辑空间的数据进行访问时,主机根据访问需求生成一个或多个I/O请求,并将其发送至SCSI(Small Computer System Interface,小型计算机系统接口)驱动侧。然后SCSI驱动侧生成驱动命令并将该驱动命令发送至SAN存储系统,SAN存储系统根据接收到的驱动命令对逻辑空间的数据进行读写。现有技术中,为了提升I/O请求的访问性能,SCSI驱动侧通常会对多个I/O请求进行合并,以减少其在传输通道上的队列占用和交互。然而,现有技术仅能对分布于同一逻辑空间的多个I/O请求进行合并,对提升I/O请求的访问性能的作用并不显著。When accessing data in the logical space, the host generates one or more I/O requests according to access requirements, and sends them to the SCSI (Small Computer System Interface, small computer system interface) driver side. Then the SCSI drive side generates a drive command and sends the drive command to the SAN storage system, and the SAN storage system reads and writes data in the logical space according to the received drive command. In the prior art, in order to improve the access performance of the I/O request, the SCSI driver usually merges multiple I/O requests to reduce their queue occupation and interaction on the transmission channel. However, the existing technology can only combine multiple I/O requests distributed in the same logical space, and has no significant effect on improving the access performance of the I/O requests.

发明内容Contents of the invention

鉴于此,本发明提供一种SCSI驱动侧及I/O请求的控制方法,以显著提升I/O请求的访问性能。In view of this, the present invention provides a SCSI driver side and a method for controlling I/O requests, so as to significantly improve the access performance of I/O requests.

第一方面提供一种I/O请求的控制方法,用于对SAN存储系统进行数据访问,该控制方法包括:接收多个I/O请求,并根据I/O请求中的逻辑块地址确定对应的物理块地址,其中多个I/O请求为对多个逻辑空间的逻辑块进行数据访问的请求;根据物理块地址的连续性,对多个I/O请求的合并;将合并后的I/O请求聚合为一个SCSI命令,发送至SAN存储系统。The first aspect provides an I/O request control method for data access to a SAN storage system. The control method includes: receiving multiple I/O requests, and determining the corresponding block address according to the logical block address in the I/O request Physical block address, where multiple I/O requests are requests for data access to logical blocks in multiple logical spaces; according to the continuity of physical block addresses, multiple I/O requests are merged; the merged I/O requests are merged /O requests are aggregated into one SCSI command and sent to the SAN storage system.

结合第一方面的实现方式,在第一种可能的实现方式中,根据I/O请求中的逻辑块地址确定对应的物理块地址的步骤包括:发送查询指令至SAN存储系统,并接收SAN存储系统反馈的逻辑块地址与物理块地址的映射表;根据映射表,查询得到多个I/O请求中的逻辑块地址对应的物理块地址。With reference to the implementation of the first aspect, in a first possible implementation, the step of determining the corresponding physical block address according to the logical block address in the I/O request includes: sending a query command to the SAN storage system, and receiving the SAN storage The mapping table of the logical block address and the physical block address fed back by the system; according to the mapping table, the physical block address corresponding to the logical block address in multiple I/O requests is queried.

结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,逻辑块地址和物理块地址具有相同的字节块大小。With reference to the first possible implementation manner of the first aspect, in a second possible implementation manner, the logical block address and the physical block address have the same byte block size.

结合第一方面的实现方式,在第三种可能的实现方式中,根据物理块地址的连续性,对多个I/O请求进行合并的步骤包括:选取查询得到的物理块地址中连续的物理块地址,并将连续的物理块地址对应的I/O请求进行第一次合并;选取查询得到的物理块地址中不连续的物理块地址,并对不连续的物理块地址对应的I/O请求进行排序;将排序后的I/O请求与第一次合并后的I/O请求进行第二次合并。In combination with the implementation of the first aspect, in a third possible implementation, according to the continuity of physical block addresses, the step of merging multiple I/O requests includes: selecting continuous physical blocks in the physical block addresses obtained from the query block address, and merge the I/O requests corresponding to the continuous physical block addresses for the first time; select the discontinuous physical block addresses in the physical block addresses obtained from the query, and perform I/O requests corresponding to the discontinuous physical block addresses The requests are sorted; the sorted I/O requests are merged a second time with the I/O requests after the first merge.

结合第一方面的实现方式,在第四种可能的实现方式中,对多个I/O请求进行合并的步骤之前包括:预先定义合并区段;对所述多个I/O请求进行合并的步骤包括:对位于同一合并区段之内的物理块地址对应的I/O请求进行合并,以形成第一I/O请求;对位于同一合并区段之外的物理块地址对应的I/O请求不进行合并,以形成第二I/O请求。In combination with the implementation of the first aspect, in a fourth possible implementation, before the step of merging multiple I/O requests includes: predefining a merging section; merging the multiple I/O requests The steps include: merging the I/O requests corresponding to the physical block addresses located in the same merging section to form the first I/O request; and merging the I/O requests corresponding to the physical block addresses outside the same merging section Requests are not coalesced to form a second I/O request.

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,将合并后的I/O请求聚合为一个SCSI命令,发送至SAN存储系统的步骤包括:将第一I/O请求和第二I/O请求聚合于一个SCSI命令,并将SCSI命令发送至SAN存储系统。In combination with the fourth possible implementation of the first aspect, in the fifth possible implementation, the merged I/O requests are aggregated into one SCSI command, and the step of sending it to the SAN storage system includes: The /O request and the second I/O request are aggregated into one SCSI command, and the SCSI command is sent to the SAN storage system.

第二方面提供一种SCSI驱动侧,包括:第一接收单元,用于接收多个I/O请求,并接收SAN存储系统根据I/O请求中的逻辑块地址确定的对应的物理块地址,其中多个I/O请求为对SAN存储系统中的多个逻辑空间的逻辑块进行数据访问的请求;第一处理单元,用于根据第一接收单元接收的物理块地址的连续性,对多个I/O请求进行合并,并将合并后的I/O请求聚合为一个SCSI命令;第一发送单元,用于将SCSI命令发送至SAN存储系统。The second aspect provides a SCSI driver side, including: a first receiving unit, configured to receive multiple I/O requests, and receive a corresponding physical block address determined by the SAN storage system according to the logical block address in the I/O request, The multiple I/O requests are requests for data access to logical blocks in multiple logical spaces in the SAN storage system; the first processing unit is configured to, according to the continuity of the addresses of the physical blocks received by the first receiving unit, perform multiple The combined I/O requests are combined, and the combined I/O requests are aggregated into one SCSI command; the first sending unit is used to send the SCSI command to the SAN storage system.

结合第二方面的实现方式,在第一种可能的实现方式中,第一处理单元用于根据第一接收单元接收的多个I/O请求生成查询指令,并控制第一发送单元将查询指令发送至SAN存储系统,第一接收单元接收SAN存储系统反馈的逻辑块地址与物理块地址的映射表,第一处理单元根据映射表查询得到多个I/O请求中的逻辑块地址对应的物理块地址。With reference to the implementation of the second aspect, in a first possible implementation, the first processing unit is configured to generate a query instruction according to the multiple I/O requests received by the first receiving unit, and control the first sending unit to send the query instruction Send to the SAN storage system, the first receiving unit receives the mapping table of the logical block address and the physical block address fed back by the SAN storage system, and the first processing unit queries the physical block address corresponding to the logical block address in multiple I/O requests according to the mapping table block address.

结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,逻辑块地址和物理块地址具有相同的字节块大小。With reference to the first possible implementation manner of the second aspect, in a second possible implementation manner, the logical block address and the physical block address have the same byte block size.

结合第二方面的实现方式,在第三种可能的实现方式中,第一处理单元还用于选取查询得到的物理块地址中连续的物理块地址,并将连续的物理块地址对应的I/O请求进行第一次合并,以及选取查询得到的物理块地址中不连续的物理块地址,并对不连续的物理块地址对应的I/O请求进行排序,以将排序后的I/O请求与第一次合并后的I/O请求进行第二次合并。In combination with the implementation of the second aspect, in a third possible implementation, the first processing unit is further configured to select continuous physical block addresses among the physical block addresses obtained from the query, and set the I/ The O request is combined for the first time, and the discontinuous physical block addresses in the physical block addresses obtained by the query are selected, and the I/O requests corresponding to the discontinuous physical block addresses are sorted, so that the sorted I/O requests Do a second merge with the I/O requests after the first merge.

结合第二方面的实现方式,在第四种可能的实现方式中,第一处理单元还用于预先定义合并区段,并对位于同一合并区段之内的物理块地址对应的I/O请求进行合并,以形成第一I/O请求,以及对位于同一合并区段之外的物理块地址对应的I/O请求不进行合并,以形成第二I/O请求。In combination with the implementation manner of the second aspect, in a fourth possible implementation manner, the first processing unit is further configured to predefine a merged section, and perform an I/O request corresponding to a physical block address within the same merged section Merging is performed to form the first I/O request, and I/O requests corresponding to physical block addresses outside the same merged section are not merged to form the second I/O request.

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,第一处理单元还用于将第一I/O请求和第二I/O请求聚合于一个SCSI命令,并控制第一发送单元将SCSI命令发送至SAN存储系统。With reference to the fourth possible implementation of the second aspect, in a fifth possible implementation, the first processing unit is further configured to aggregate the first I/O request and the second I/O request into one SCSI command, And control the first sending unit to send the SCSI command to the SAN storage system.

本发明的有益效果是:区别于现有技术的情况,本发明通过获取多个I/O请求的逻辑块地址在SAN存储系统中对应的物理块地址,并根据物理块地址的连续性将连续的物理块地址对应的I/O请求进行合并,从而能够完成分布于多个逻辑空间的I/O请求的合并,减少I/O请求在传输通道上的队列占用和交互,并显著提升I/O请求的访问性能。The beneficial effects of the present invention are: different from the situation of the prior art, the present invention obtains the physical block addresses corresponding to the logical block addresses of multiple I/O requests in the SAN storage system, and according to the continuity of the physical block addresses, sequentially The I/O requests corresponding to the physical block addresses are combined, so that the combination of I/O requests distributed in multiple logical spaces can be completed, the queue occupation and interaction of I/O requests on the transmission channel can be reduced, and the I/O request can be significantly improved. O requested access performance.

附图说明Description of drawings

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,,还可以根据这些附图获得其他的附图。其中:In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings that need to be used in the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present invention. For those skilled in the art, other drawings can also be obtained according to these drawings. in:

图1是本发明第一实施例的I/O请求的控制方法的流程图;FIG. 1 is a flowchart of a method for controlling an I/O request according to a first embodiment of the present invention;

图2是本发明SAN存储系统优选实施例的原理框图;Fig. 2 is a functional block diagram of a preferred embodiment of the SAN storage system of the present invention;

图3是本发明第一实施例的I/O请求的控制系统的原理框图;Fig. 3 is the functional block diagram of the control system of the I/O request of the first embodiment of the present invention;

图4是本发明第四实施例的I/O请求的控制系统的原理框图。FIG. 4 is a functional block diagram of an I/O request control system according to a fourth embodiment of the present invention.

具体实施方式detailed description

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only some of the embodiments of the present invention, not all of them.

本发明提供一种I/O请求的控制方法,请参见图1所示的本发明第一实施例的控制方法的流程图。本实施例的I/O请求的控制方法用于对图2所示的SAN存储系统210中存储资源池240中的多个逻辑空间LUN0、LUN1、…、LUNx进行数据访问,即对每一逻辑空间LUN0、LUN1、…、LUNx包括的多个逻辑块LB0、LB1、…LBa、…、LBn进行数据访问。上述对逻辑空间LUN0、LUN1、…、LUNx进行的数据访问,最终实体表现为对物理块PB0、PB1、…、PBn存储的数据进行访问。需要说明的是,本发明全文所提及的数据访问指的是对数据的读取、调用以及写入等其他可对存储数据进行的任何操作。The present invention provides an I/O request control method, please refer to the flow chart of the control method in the first embodiment of the present invention shown in FIG. 1 . The I/O request control method of this embodiment is used to perform data access to multiple logical spaces LUN0, LUN1, ..., LUNx in the storage resource pool 240 in the SAN storage system 210 shown in FIG. A plurality of logical blocks LBO, LB1, ... LBa, ..., LBn included in spaces LUN0, LUN1, ..., LUNx perform data access. The above data access to the logical spaces LUN0, LUN1, ..., LUNx, the final entity is to access the data stored in the physical blocks PB0, PB1, ..., PBn. It should be noted that the data access mentioned throughout the present invention refers to any operation that can be performed on stored data, such as reading, calling, and writing data.

如图1所示,本实施例中所揭示的I/O请求的控制方法包括:As shown in FIG. 1, the I/O request control method disclosed in this embodiment includes:

步骤S11:SCSI驱动侧接收多个I/O请求,并根据I/O请求中的逻辑块地址从SAN存储系统获取对应的物理块地址,其中多个I/O请求为对多个逻辑空间中的逻辑块进行数据访问的请求。Step S11: The SCSI driver side receives multiple I/O requests, and obtains corresponding physical block addresses from the SAN storage system according to the logical block addresses in the I/O requests, wherein the multiple I/O requests are for multiple logical spaces Logical block for data access requests.

参阅图2,在需要对不同逻辑空间中的逻辑块进行数据访问时,主机的应用会相应的生成多个I/O请求并发送至SCSI驱动侧。例如,在对逻辑空间LUN0的逻辑块LB2、逻辑空间LUN2的逻辑块LB7、LB50以及逻辑空间LUN9的逻辑块LB2进行数据访问时,SCSI驱动侧对应接收到的多个I/O请求依次为IO-1(LUN0,LBA2,LEN3)、IO-2(LUN2,LBA7,LEN1)、IO-3(LUN9,LBA2,LEN2)、IO-4(LUN2,LBA50,LEN2)。Referring to FIG. 2 , when it is necessary to perform data access to logical blocks in different logical spaces, the application of the host will correspondingly generate multiple I/O requests and send them to the SCSI driver side. For example, when performing data access to the logical block LB2 of the logical space LUN0, the logical blocks LB7 and LB50 of the logical space LUN2, and the logical block LB2 of the logical space LUN9, the corresponding multiple I/O requests received by the SCSI drive side are IO -1 (LUN0, LBA2, LEN3), IO-2 (LUN2, LBA7, LEN1), IO-3 (LUN9, LBA2, LEN2), IO-4 (LUN2, LBA50, LEN2).

SCSI驱动侧在接收完成上述I/O请求后,即据此生成一个查询指令并发送至SAN存储系统。其中,该查询指令为一种SCSI命令,其以字节流的形式通过总线发送至SAN存储系统,本实施例优选该SCSI命令采用如下表1所示的CDB(Command Descriptor Blocks,命令描述块)格式,相应地,该命令的参数格式如下表2所示:After the SCSI driver side receives and completes the above I/O request, it generates a query command accordingly and sends it to the SAN storage system. Wherein, the query command is a SCSI command, which is sent to the SAN storage system through the bus in the form of a byte stream. In this embodiment, the SCSI command is preferably used as CDB (Command Descriptor Blocks, command description block) as shown in Table 1 below. Correspondingly, the parameter format of this command is shown in Table 2 below:

表1Table 1

表2Table 2

SAN存储系统在接收到该查询指令后对其特定参数进行解析,并在系统中获取IO-1、IO-2、IO-3和IO-4需要访问的逻辑块的逻辑块地址与其对应的物理块的物理块地址的映射关系,具体如下表3所示:After receiving the query instruction, the SAN storage system parses its specific parameters, and obtains the logical block addresses of the logical blocks that IO-1, IO-2, IO-3, and IO-4 need to access in the system and their corresponding physical The mapping relationship of the physical block address of the block is shown in Table 3 below:

I/O请求I/O request 物理块地址physical block address IO-1(LUN0,LBA2,LEN3)IO-1 (LUN0, LBA2, LEN3) (PBA10,LEN3)(PBA10, LEN3) IO-2(LUN2,LBA7,LEN1)IO-2 (LUN2, LBA7, LEN1) (PBA2,LEN1)(PBA2, LEN1) IO-3(LUN9,LBA2,LEN2)IO-3 (LUN9, LBA2, LEN2) (PBA13,LEN2)(PBA13, LEN2) IO-4(LUN2,LBA50,LEN2)IO-4 (LUN2, LBA50, LEN2) (PBA100,LEN0)(PBA100, LEN0)

表3table 3

SAN存储系统将映射关系发送给SCSI驱动侧,具体表现为通过如下表4所示的映射描述对上表1所示的SCSI命令的响应。The SAN storage system sends the mapping relationship to the SCSI driver side, which is specifically expressed as a response to the SCSI commands shown in Table 1 above through the mapping described in Table 4 below.

表4Table 4

在本实施例中,SAN存储系统获取的映射关系为多个I/O请求中需要访问的逻辑块的逻辑块地址与其对应的物理块的物理块地址的一一对应关系。进一步地,为便于查找,本实施例优选SCSI驱动侧首先将接收到的映射关系以映射表的形式予以显示,而后在映射表中查询接收到的多个I/O请求的逻辑块对应的物理块。In this embodiment, the mapping relationship obtained by the SAN storage system is a one-to-one correspondence between the logical block addresses of the logical blocks to be accessed in the multiple I/O requests and the physical block addresses of the corresponding physical blocks. Further, in order to facilitate the search, the preferred SCSI driver side of this embodiment first displays the received mapping relationship in the form of a mapping table, and then queries the physical block corresponding to the received multiple I/O requests in the mapping table. piece.

在其他实施例中,SAN存储系统还可以获取全部的逻辑块地址与物理块地址的映射关系,并发送给SCSI驱动侧,以使SCSI驱动侧根据映射关系查找所要访问的逻辑块地址对应的物理块地址。或者,SAN存储系统可直接将多个I/O请求中需要访问的逻辑块地址对应的物理块地址反馈给SCSI驱动侧。In other embodiments, the SAN storage system can also obtain the mapping relationship between all logical block addresses and physical block addresses, and send it to the SCSI driver side, so that the SCSI driver side can search for the physical address corresponding to the logical block address to be accessed according to the mapping relationship. block address. Alternatively, the SAN storage system may directly feed back the physical block address corresponding to the logical block address to be accessed in the multiple I/O requests to the SCSI driver side.

需要说明的是,本发明全文提及的映射关系具体表现为逻辑块的逻辑块地址(Logical Block Address,LBA)与物理块的物理块地址(Physical Block Address,PBA)的一一对应关系,并且采用上述表1所示的SCSI命令时,对逻辑块的逻辑块地址和物理块的物理块地址的描述采用相同大小的字节块(Block)大小。It should be noted that the mapping relationship mentioned throughout the present invention is specifically expressed as a one-to-one correspondence between the logical block address (Logical Block Address, LBA) of the logical block and the physical block address (Physical Block Address, PBA) of the physical block, and When using the SCSI command shown in Table 1 above, the description of the logical block address of the logical block and the physical block address of the physical block adopts the same byte block (Block) size.

步骤S12:SCSI驱动侧根据物理块地址的连续性,将多个物理块地址对应的I/O请求进行合并。Step S12: The SCSI drive side merges the I/O requests corresponding to multiple physical block addresses according to the continuity of the physical block addresses.

参阅上表3可知,获取的IO-1、IO-2、IO-3和IO-4需要访问的逻辑块对应的物理块的物理地址为(PBA10,LEN3)、(PBA2,LEN1)、(PBA13,LEN2)、(PBA100,LEN2)。Referring to Table 3 above, it can be seen that the physical addresses of the physical blocks corresponding to the logical blocks that need to be accessed by the acquired IO-1, IO-2, IO-3 and IO-4 are (PBA10, LEN3), (PBA2, LEN1), (PBA13 , LEN2), (PBA100, LEN2).

然后,选取获取的四个物理块中地址连续的物理块。基于现有技术的连续性的算法,LEN表示物理块的长度(length),可知在获取的四个物理块中,连续的物理块地址为(PBA10,LEN3)和(PBA13,LEN2)。将连续的物理块地址对应的I/O请求进行第一次合并,即将IO-1和IO-3进行合并,合并后为IO-1-3。Then, select physical blocks with continuous addresses among the obtained four physical blocks. Based on the continuity algorithm in the prior art, LEN represents the length (length) of the physical block. It can be seen that among the four acquired physical blocks, the continuous physical block addresses are (PBA10, LEN3) and (PBA13, LEN2). The I/O requests corresponding to the continuous physical block addresses are merged for the first time, that is, IO-1 and IO-3 are merged, and the merged form is IO-1-3.

选取其中不连续的物理块地址,即(PBA2,LEN1)与(PBA10,LEN3)和(PBA13,LEN2)是不连续的。对不连续的物理块地址进行排序,而后将排序后的物理块地址对应的I/O请求与第一次合并后的I/O请求进行第二次合并,即将IO-1-3和IO-2进行合并,合并后为IO-2-1-3。Select the discontinuous physical block addresses, that is, (PBA2, LEN1) and (PBA10, LEN3) and (PBA13, LEN2) are discontinuous. Sort the discontinuous physical block addresses, and then merge the I/O requests corresponding to the sorted physical block addresses with the I/O requests after the first merge, that is, IO-1-3 and IO- 2 are merged, and after the merger is IO-2-1-3.

步骤S13:SCSI驱动侧将合并后的I/O请求聚合为一个SCSI命令,发送至SAN存储系统。Step S13: the SCSI driver side aggregates the merged I/O requests into one SCSI command and sends it to the SAN storage system.

SCSI驱动侧将合并后的I/O请求,即IO-2-1-3,发送至SAN存储系统。其中,IO-2-1-3是一种地址不连续的聚合I/O请求,由于其聚合了不同逻辑空间的I/O请求,因此需要一种聚合SCSI命令将其发送至SAN存储系统,该聚合SCSI命令可采用下表5所示的CDB格式:The SCSI driver side sends the merged I/O request, that is, IO-2-1-3, to the SAN storage system. Among them, IO-2-1-3 is an aggregated I/O request with discontinuous addresses. Since it aggregates I/O requests in different logical spaces, it needs an aggregated SCSI command to send it to the SAN storage system. The aggregated SCSI command can be in the CDB format shown in Table 5 below:

表5table 5

SAN存储系统在接收到该聚合SCSI命令后,通过处理得到合并后的I/O请求,并据此完成对数据访问。After receiving the aggregated SCSI command, the SAN storage system obtains the combined I/O request through processing, and completes data access accordingly.

根据数据访问的具体操作,需要构造的访问命令的格式不同,例如对逻辑空间的数据进行写入时,需构造Data-Out Buffer命令格式;对逻辑空间的数据进行读取时,需构造Data-In Buffer命令格式。在采用上述读写命令格式对数据进行访问时,还需要对读写流程进行区分,具体而言,在进行写入流程时采用如下表6所示,在进行读取流程时采用如下表7所示。其中,上述Data-Out Buffer命令格式和Data-In Buffer命令格式的参数格式如下表8所示。According to the specific operation of data access, the format of the access command to be constructed is different. For example, when writing data in the logical space, a Data-Out Buffer command format needs to be constructed; when reading data in the logical space, a Data-Out Buffer command format needs to be constructed. In Buffer command format. When using the above-mentioned read and write command formats to access data, it is also necessary to distinguish the read and write processes. Specifically, the following table 6 is used for the write process, and the following table 7 is used for the read process. Show. Wherein, the parameter formats of the above-mentioned Data-Out Buffer command format and Data-In Buffer command format are shown in Table 8 below.

表6Table 6

表7Table 7

表8Table 8

基于上述,可知本实施例通过获取多个I/O请求的逻辑块地址在SAN存储系统中对应的物理块地址,并根据物理块地址的连续性将对应的I/O请求进行合并,从而完成分布于多个逻辑空间的多个I/O请求的合并,减少I/O请求在传输通道上的队列占用以及交互,进而显著提升I/O请求的访问性能。Based on the above, it can be known that this embodiment obtains the physical block addresses corresponding to the logical block addresses of multiple I/O requests in the SAN storage system, and merges the corresponding I/O requests according to the continuity of the physical block addresses, thereby completing The merging of multiple I/O requests distributed in multiple logical spaces reduces the queue occupation and interaction of I/O requests on the transmission channel, thereby significantly improving the access performance of I/O requests.

本发明还提供第二实施例的I/O请求的控制方法,其在第一实施例所揭示的控制方法的基础上进行详细描述。本实施例与图1所示第一实施例的不同之处在于:The present invention also provides the I/O request control method of the second embodiment, which is described in detail on the basis of the control method disclosed in the first embodiment. The difference between this embodiment and the first embodiment shown in Figure 1 is:

在步骤S12中,对于不在同一合并区段内的多个I/O请求不进行合并。本实施例中,合并区段是对SAN存储系统中的多个逻辑空间的逻辑块(LBA)进行区域的划分,以避免当各个LBA在传输通道上相隔较大时即使进行合并也不能显著的减少I/O请求在传输通道上的队列占用,对I/O请求的访问性能也并没有显著的提升。In step S12, multiple I/O requests that are not in the same merged section are not merged. In this embodiment, the merging section is to divide the logical blocks (LBAs) of multiple logical spaces in the SAN storage system, so as to avoid that the merging of each LBA cannot be significant even if the distance between the transmission channels is large. Reducing the queue occupancy of I/O requests on the transmission channel does not significantly improve the access performance of I/O requests.

对于合并区段中LBA的字节块的划分大小,本领域技术人员可根据实际需要设定,例如预定义合并区段划分LBA为30个字节块,则LBA50和LBA2、LBA7、LBA2不在一个合并区段,也就是说IO-4(LUN2,LBA50,LEN2)和上述三个I/O请求,即IO-1(LUN0,LBA2,LEN3)、IO-2(LUN2,LBA7,LEN1)和IO-3(LUN9,LBA2,LEN2),不在一个合并区段,则IO-4不能与IO-1、IO-2、IO-3进行合并。For the division size of the byte blocks of the LBA in the merged section, those skilled in the art can set according to actual needs, for example, the predefined merged section divides the LBA into 30 byte blocks, then LBA50 and LBA2, LBA7, and LBA2 are not in one Merge segments, that is, IO-4 (LUN2, LBA50, LEN2) and the above three I/O requests, namely IO-1 (LUN0, LBA2, LEN3), IO-2 (LUN2, LBA7, LEN1) and IO -3 (LUN9, LBA2, LEN2), if it is not in a merged section, then IO-4 cannot be merged with IO-1, IO-2, and IO-3.

在对位于同一合并区段之内的物理块地址对应的I/O请求进行合并,以形成第一I/O请求,即IO-2-1-3。对位于同一合并区段之外的物理块地址对应的I/O请求不进行合并,以形成第二I/O请求,即IO-4(LUN2,LBA50,LEN2)。The I/O requests corresponding to the physical block addresses within the same merging section are combined to form the first I/O request, that is, IO-2-1-3. The I/O requests corresponding to the physical block addresses outside the same merged section are not merged to form the second I/O request, that is, IO-4 (LUN2, LBA50, LEN2).

在步骤S13中,SCSI驱动侧将第一I/O请求和第二I/O请求聚合于一个SCSI命令,并将该SCSI命令发送至SAN存储系统。SAN存储系统解析该SCSI命令以对第一I/O请求和第二I/O请求分别进行响应。In step S13, the SCSI driver aggregates the first I/O request and the second I/O request into one SCSI command, and sends the SCSI command to the SAN storage system. The SAN storage system parses the SCSI command to respond to the first I/O request and the second I/O request respectively.

本实施例能够对位于不同合并区段的多个I/O请求进行操作,并将不能进行合并的I/O请求单独与合并后的I/O请求聚合在同一SCSI命令中发送给SAN存储系统,从而最大程度的完成分布于多个逻辑空间的多个I/O请求的合并,减少I/O请求的传输通道上的队列占用以及交互,进而显著提升I/O请求的访问性能。This embodiment can operate on multiple I/O requests located in different merged sections, and aggregate the I/O requests that cannot be merged with the merged I/O requests separately and send them to the SAN storage system in the same SCSI command , so as to maximize the merging of multiple I/O requests distributed in multiple logical spaces, reduce the queue occupation and interaction on the transmission channel of I/O requests, and significantly improve the access performance of I/O requests.

需要说明的是,本实施例与上述第一实施例所揭示的上述IO请求的逻辑块、逻辑块地址以及对应的物理块、物理块地址,以及上表中相应的具体数值,仅供说明举例。在其他实施例中,本领域技术人员可以根据实际需要进行其他设置,只需满足多个逻辑块的逻辑块地址与多个物理块的物理块地址的一一对应关系即可。It should be noted that the logical block, logical block address, corresponding physical block, physical block address, and corresponding specific values in the above table disclosed in this embodiment and the above-mentioned first embodiment are for illustration and example only. . In other embodiments, those skilled in the art can make other settings according to actual needs, as long as the one-to-one correspondence between the logical block addresses of multiple logical blocks and the physical block addresses of multiple physical blocks is satisfied.

本发明还提供了第一实施例的一种IO请求的控制系统,如图3所示,本实施例基于图2所示的SAN存储系统210以及SCSI驱动侧220、应用230。本实施例所揭示的SCSI驱动侧220包括第一接收单元221、第一处理单元222和第一发送单元223,SAN存储系统210包括第二接收单元211、第二处理单元212和第二发送单元213。The present invention also provides an IO request control system of the first embodiment, as shown in FIG. 3 , this embodiment is based on the SAN storage system 210 , the SCSI driver side 220 , and the application 230 shown in FIG. 2 . The SCSI drive side 220 disclosed in this embodiment includes a first receiving unit 221, a first processing unit 222, and a first sending unit 223, and the SAN storage system 210 includes a second receiving unit 211, a second processing unit 212, and a second sending unit 213.

第一接收单元221用于接收应用230形成的多个I/O请求,该多个I/O请求为对SAN存储系统210中的多个逻辑块进行数据访问的请求。The first receiving unit 221 is configured to receive multiple I/O requests formed by the application 230 , where the multiple I/O requests are requests for data access to multiple logical blocks in the SAN storage system 210 .

第一处理单元222用于根据第一接收单元221接收到的多个I/O请求生成查询指令,并控制第一发送单元223将查询指令发送至SAN存储系统210的第二接收单元211。The first processing unit 222 is configured to generate query commands according to multiple I/O requests received by the first receiving unit 221 , and control the first sending unit 223 to send the query commands to the second receiving unit 211 of the SAN storage system 210 .

第二处理单元212用于根据查询指令获取SAN存储系统210中逻辑块地址与物理块地址的映射关系,并控制第二发送单元213将映射关系发送至SCSI驱动侧220的第一接收单元221。The second processing unit 212 is used to obtain the mapping relationship between the logical block address and the physical block address in the SAN storage system 210 according to the query command, and control the second sending unit 213 to send the mapping relationship to the first receiving unit 221 of the SCSI driver side 220 .

第一处理单元222用于根据物理块地址的连续性,将连续的多个物理块地址对应的I/O请求进行合并。The first processing unit 222 is configured to combine I/O requests corresponding to multiple consecutive physical block addresses according to the continuity of the physical block addresses.

第一发送单元223用于将第一处理单元222合并后的I/O请求发送至SAN存储系统210的第二接收单元211。第二处理单元212根据合并后的I/O请求完成对SAN存储系统210中的数据访问。The first sending unit 223 is configured to send the combined I/O requests of the first processing unit 222 to the second receiving unit 211 of the SAN storage system 210 . The second processing unit 212 completes data access in the SAN storage system 210 according to the merged I/O request.

本发明还提供了第二实施例的IO请求的控制系统,其在第一实施例的基础上进行详细描述。本实施例与上述第一实施例的控制系统的不同之处在于:The present invention also provides the IO request control system of the second embodiment, which is described in detail on the basis of the first embodiment. The differences between this embodiment and the control system of the above-mentioned first embodiment are:

第一接收单元221接收到的多个I/O请求并不能直接全部合并,而需要先进行排序。具体而言,第一处理单元222还用于选取多个物理块地址中连续的物理块地址,并将连续的物理块地址对应的I/O请求进行第一次合并。同时选取物理块地址中不连续的物理块地址,并对不连续的物理块地址进行排序,将排序后的物理块地址对应的I/O请求与第一次合并后的I/O请求进行第二次合并。The multiple I/O requests received by the first receiving unit 221 cannot be directly combined, but need to be sorted first. Specifically, the first processing unit 222 is further configured to select continuous physical block addresses among the multiple physical block addresses, and combine the I/O requests corresponding to the continuous physical block addresses for the first time. At the same time, select the discontinuous physical block addresses in the physical block addresses, and sort the discontinuous physical block addresses, and perform the second I/O request corresponding to the sorted physical block addresses with the I/O request after the first merge. secondary merger.

本发明还提供了第三实施例的IO请求的控制系统,其在图3所示的第一实施例的基础上进行详细描述。本实施例与上述第一实施例的控制系统的不同之处在于:The present invention also provides an IO request control system of a third embodiment, which is described in detail on the basis of the first embodiment shown in FIG. 3 . The differences between this embodiment and the control system of the above-mentioned first embodiment are:

第一接收单元221接收到的多个I/O请求位于不同的预先定义的合并区段,该合并区段可由第一处理单元222预先定义。The multiple I/O requests received by the first receiving unit 221 are located in different predefined merged sections, and the merged sections may be predefined by the first processing unit 222 .

第一处理单元222对位于同一合并区段之内的物理块地址对应的I/O请求进行合并,以形成第一I/O请求。同时对位于同一合并区段之外的物理块地址对应的I/O请求不进行合并,以形成第二I/O请求。进一步地,第一处理单元222还将第一I/O请求和第二I/O请求聚合于一个SCSI命令,并控制第一发送单元223将该SCSI命令发送至SAN存储系统210的第二接收单元211,以使第二处理单元212解析该SCSI命令,并根据解析得到的第一I/O请求和第二I/O请求完成对SAN存储系统210中的数据访问。The first processing unit 222 merges the I/O requests corresponding to the physical block addresses within the same merged section to form a first I/O request. At the same time, the I/O requests corresponding to the physical block addresses outside the same merged section are not merged to form the second I/O request. Further, the first processing unit 222 also aggregates the first I/O request and the second I/O request into one SCSI command, and controls the first sending unit 223 to send the SCSI command to the second receiver of the SAN storage system 210 unit 211, so that the second processing unit 212 parses the SCSI command, and completes data access in the SAN storage system 210 according to the first I/O request and the second I/O request obtained through the parsing.

本发明的上述几个实施例的SAN存储系统210和SCSI驱动侧220,对应的基于上述实施例的I/O请求的控制方法,因此可具有相同的技术效果。并且应该理解到,所揭露的SAN存储系统210和SCSI驱动侧220的描述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统中,或一些特征可以忽略,或不执行。另外,模块相互之间的耦合或通信连接可以是通过一些接口,也可以是电性或其它的形式。The SAN storage system 210 and the SCSI drive side 220 in the above-mentioned several embodiments of the present invention correspond to the I/O request control methods based on the above-mentioned embodiments, so they can have the same technical effect. And it should be understood that the disclosed division of the description modules of the SAN storage system 210 and the SCSI driver side 220 is only a logical function division, and there may be other division methods during actual implementation, for example, multiple modules can be combined or integrated to another system, or some features may be ignored, or not implemented. In addition, the coupling or communication connection between the modules may be through some interfaces, or may be in electrical or other forms.

上述各个功能模块作为SAN存储系统210和SCSI驱动侧220的组成部分,可以是或者也可以不是物理框,既可以位于一个地方,也可以分布到多个网络单元上,既可以采用硬件的形式实现,也可以采用软件功能框的形式实现。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。As components of the SAN storage system 210 and the SCSI drive side 220, the above-mentioned functional modules may or may not be physical boxes, may be located in one place, or may be distributed to multiple network units, and may be realized in the form of hardware , can also be implemented in the form of a software function box. Part or all of the modules can be selected according to actual needs to achieve the purpose of the solution of the present invention.

本发明还提供第四实施例的一种IO请求的控制系统,其在图3所示的第一实施例中所揭示的IO请求的控制系统的基础上进行详细描述。如图4所示,本实施例中所揭示的SCSI驱动侧220包括第一接收器321、第一处理器322和第一发送器323,SAN存储系统210包括第二接收器311、第二处理器312和第二发送器313。The present invention also provides an IO request control system of the fourth embodiment, which is described in detail on the basis of the IO request control system disclosed in the first embodiment shown in FIG. 3 . As shown in FIG. 4 , the SCSI driver side 220 disclosed in this embodiment includes a first receiver 321, a first processor 322, and a first transmitter 323, and the SAN storage system 210 includes a second receiver 311, a second processing device 312 and a second transmitter 313.

第一接收器321用于接收应用230形成的多个I/O请求,该多个I/O请求为对SAN存储系统210中的多个逻辑块进行数据访问的请求。The first receiver 321 is configured to receive multiple I/O requests formed by the application 230 , where the multiple I/O requests are requests for data access to multiple logical blocks in the SAN storage system 210 .

第一处理器322用于根据第一接收器321接收到的多个I/O请求生成查询指令,并控制第一发送器323将查询指令发送至SAN存储系统210的第二接收器311。The first processor 322 is configured to generate query commands according to multiple I/O requests received by the first receiver 321 , and control the first sender 323 to send the query commands to the second receiver 311 of the SAN storage system 210 .

第二处理器312用于根据查询指令获取SAN存储系统210中逻辑块地址与物理块地址的映射关系,并控制第二发送器313将映射关系发送至SCSI驱动侧220的第一接收器321。The second processor 312 is configured to obtain the mapping relationship between the logical block address and the physical block address in the SAN storage system 210 according to the query command, and control the second transmitter 313 to send the mapping relationship to the first receiver 321 of the SCSI driver side 220 .

第一处理器322用于根据物理块地址的连续性,将连续的物理块地址对应的I/O请求进行合并。The first processor 322 is configured to combine I/O requests corresponding to consecutive physical block addresses according to the continuity of the physical block addresses.

第一发送器323用于将第一处理器322合并后的I/O请求发送至SAN存储系统210的第二接收器311。The first sender 323 is configured to send the combined I/O requests of the first processor 322 to the second receiver 311 of the SAN storage system 210 .

第二处理器312根据合并后的I/O请求完成对SAN存储系统210中数据的访问。The second processor 312 completes the access to the data in the SAN storage system 210 according to the merged I/O request.

综上所述,本发明通过获取多个I/O请求中的逻辑块地址在SAN存储系统中对应的物理块地址,并将连续的物理块地址对应的I/O请求进行合并,从而能够完成分布于多个逻辑空间的I/O请求的合并,减少I/O请求的传输通道上的交互,并显著提升I/O请求的访问性能。In summary, the present invention obtains the physical block addresses corresponding to the logical block addresses in the SAN storage system in multiple I/O requests, and merges the I/O requests corresponding to the continuous physical block addresses, thereby being able to complete The combination of I/O requests distributed in multiple logical spaces reduces the interaction on the transmission channel of I/O requests and significantly improves the access performance of I/O requests.

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。The above is only an embodiment of the present invention, and does not limit the patent scope of the present invention. Any equivalent structure or equivalent process transformation made by using the description of the present invention and the contents of the accompanying drawings, or directly or indirectly used in other related technologies fields, all of which are equally included in the scope of patent protection of the present invention.

Claims (8)

1.一种I/O请求的控制方法,用于对SAN存储系统进行数据访问,其特征在于,所述控制方法包括:1. a control method of I/O request, for carrying out data access to SAN storage system, it is characterized in that, described control method comprises: 预先定义合并区段,所述合并区段是对所述SAN存储系统中的多个逻辑空间的逻辑块进行区域的划分;Predefining the merged section, the merged section is to divide the logical blocks of multiple logical spaces in the SAN storage system; 接收多个I/O请求,并根据所述I/O请求中的逻辑块地址确定对应的物理块地址,其中所述多个I/O请求为对多个逻辑空间的逻辑块进行数据访问的请求;receiving multiple I/O requests, and determining the corresponding physical block addresses according to the logical block addresses in the I/O requests, wherein the multiple I/O requests are for data access to logical blocks in multiple logical spaces ask; 根据所述物理块地址的连续性,对所述多个I/O请求进行合并,其中,对位于同一所述合并区段之内的所述物理块地址对应的I/O请求进行合并,以形成第一I/O请求;对位于同一所述合并区段之外的所述物理块地址对应的I/O请求不进行合并,以形成第二I/O请求;Merge the multiple I/O requests according to the continuity of the physical block addresses, where the I/O requests corresponding to the physical block addresses located in the same merged section are merged, so that forming a first I/O request; not merging the I/O requests corresponding to the physical block addresses located outside the same merging section to form a second I/O request; 将合并后的I/O请求聚合为一个SCSI命令,发送至所述SAN存储系统。Aggregate the merged I/O requests into one SCSI command and send it to the SAN storage system. 2.根据权利要求1所述的控制方法,其特征在于,所述根据所述I/O请求中的逻辑块地址确定对应的物理块地址的步骤包括:2. The control method according to claim 1, wherein the step of determining the corresponding physical block address according to the logical block address in the I/O request comprises: 发送查询指令至所述SAN存储系统,并接收所述SAN存储系统反馈的逻辑块地址与物理块地址的映射表;sending a query command to the SAN storage system, and receiving a mapping table of logical block addresses and physical block addresses fed back by the SAN storage system; 根据所述映射表,查询得到所述多个I/O请求中的逻辑块地址对应的物理块地址。According to the mapping table, the physical block addresses corresponding to the logical block addresses in the multiple I/O requests are obtained by querying. 3.根据权利要求2所述的控制方法,其特征在于,所述逻辑块地址和所述物理块地址具有相同大小的字节块。3. The control method according to claim 2, wherein the logical block address and the physical block address have byte blocks of the same size. 4.根据权利要求1所述的控制方法,其特征在于,所述根据所述物理块地址的连续性,对所述多个IO请求进行合并的步骤包括:4. The control method according to claim 1, wherein the step of merging the plurality of IO requests according to the continuity of the physical block addresses comprises: 选取查询得到的所述物理块地址中连续的物理块地址,并将所述连续的物理块地址对应的I/O请求进行第一次合并;Selecting continuous physical block addresses in the physical block addresses obtained by querying, and merging the I/O requests corresponding to the continuous physical block addresses for the first time; 选取查询得到的所述物理块地址中不连续的物理块地址,并对所述不连续的物理块地址对应的I/O请求进行排序;Selecting discontinuous physical block addresses among the physical block addresses obtained through query, and sorting the I/O requests corresponding to the discontinuous physical block addresses; 将排序后的I/O请求与第一次合并后的I/O请求进行第二次合并。Merge the sorted I/O requests a second time with the I/O requests after the first merge. 5.一种SCSI驱动侧,其特征在于,所述SCSI驱动侧包括:5. A kind of SCSI drive side, it is characterized in that, described SCSI drive side comprises: 第一处理单元,用于预先定义合并区段,所述合并区段是对SAN存储系统中的多个逻辑空间的逻辑块进行区域的划分;The first processing unit is used to predefine the merged section, and the merged section is to divide logical blocks of multiple logical spaces in the SAN storage system; 第一接收单元,用于接收多个I/O请求,并接收SAN存储系统根据所述I/O请求中的逻辑块地址确定的对应的物理块地址,其中所述多个I/O请求为对所述SAN存储系统中多个逻辑空间的逻辑块进行数据访问的请求;The first receiving unit is configured to receive multiple I/O requests, and receive corresponding physical block addresses determined by the SAN storage system according to the logical block addresses in the I/O requests, wherein the multiple I/O requests are A request for data access to logical blocks in multiple logical spaces in the SAN storage system; 所述第一处理单元,还用于根据所述第一接收单元接收的所述物理块地址的连续性,对所述多个I/O请求进行合并,对位于同一所述合并区段之内的所述物理块地址对应的I/O请求进行合并,以形成第一I/O请求;对位于同一所述合并区段之外的所述物理块地址对应的I/O请求不进行合并,以形成第二I/O请求,并进一步将合并后的I/O请求聚合为一个SCSI命令;The first processing unit is further configured to merge the plurality of I/O requests according to the continuity of the physical block addresses received by the first receiving unit, and the requests located in the same merged section Merge the I/O requests corresponding to the physical block addresses to form the first I/O request; do not merge the I/O requests corresponding to the physical block addresses outside the same merged section, to form a second I/O request, and further aggregate the merged I/O requests into one SCSI command; 第一发送单元,用于将所述SCSI命令发送至所述SAN存储系统。A first sending unit, configured to send the SCSI command to the SAN storage system. 6.根据权利要求5所述的SCSI驱动侧,其特征在于,所述第一处理单元用于根据所述第一接收单元接收的所述多个I/O请求生成查询指令,并控制所述第一发送单元将所述查询指令发送至所述SAN存储系统,所述第一接收单元接收所述SAN存储系统反馈的逻辑块地址与物理块地址的映射表,所述第一处理单元根据所述映射表查询得到所述多个I/O请求中的逻辑块地址对应的物理块地址。6. The SCSI drive side according to claim 5, wherein the first processing unit is configured to generate query instructions according to the plurality of I/O requests received by the first receiving unit, and control the The first sending unit sends the query instruction to the SAN storage system, the first receiving unit receives the mapping table of the logical block address and the physical block address fed back by the SAN storage system, and the first processing unit according to the The mapping table is queried to obtain the physical block addresses corresponding to the logical block addresses in the multiple I/O requests. 7.根据权利要求6所述的SCSI驱动侧,其特征在于,所述逻辑块地址和所述物理块地址具有相同的字节块大小。7. The SCSI drive side according to claim 6, wherein the logical block address and the physical block address have the same byte block size. 8.根据权利要求5所述的SCSI驱动侧,其特征在于,所述第一处理单元还用于选取查询得到的所述物理块地址中连续的物理块地址,并将所述连续的物理块地址对应的I/O请求进行第一次合并,以及选取查询得到的所述物理块地址中不连续的物理块地址,并对所述不连续的物理块地址对应的I/O请求进行排序,以将排序后的I/O请求与第一次合并后的I/O请求进行第二次合并。8. The SCSI drive side according to claim 5, wherein the first processing unit is further configured to select continuous physical block addresses in the physical block addresses obtained by querying, and place the continuous physical block addresses The I/O requests corresponding to the addresses are combined for the first time, and the discontinuous physical block addresses in the physical block addresses obtained by query are selected, and the I/O requests corresponding to the discontinuous physical block addresses are sorted, To perform a second merge of the sorted I/O requests with the first merged I/O requests.
CN201310647835.1A 2013-12-04 2013-12-04 SCSI drive side and I/O request control method Active CN103617136B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310647835.1A CN103617136B (en) 2013-12-04 2013-12-04 SCSI drive side and I/O request control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310647835.1A CN103617136B (en) 2013-12-04 2013-12-04 SCSI drive side and I/O request control method

Publications (2)

Publication Number Publication Date
CN103617136A CN103617136A (en) 2014-03-05
CN103617136B true CN103617136B (en) 2017-02-01

Family

ID=50167839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310647835.1A Active CN103617136B (en) 2013-12-04 2013-12-04 SCSI drive side and I/O request control method

Country Status (1)

Country Link
CN (1) CN103617136B (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469174B (en) * 2015-08-19 2019-10-29 阿里巴巴集团控股有限公司 Method for reading data and device
CN105282244B (en) * 2015-09-29 2018-10-02 华为技术有限公司 a kind of data processing method, device, server and controller
CN108241468B (en) * 2016-12-23 2021-12-07 北京忆芯科技有限公司 IO command processing method and solid-state storage device
CN109857682B (en) * 2017-11-30 2021-10-01 华为技术有限公司 Data access method, memory and processor
CN110489353A (en) * 2019-07-19 2019-11-22 苏州浪潮智能科技有限公司 A kind of raising solid state hard disk bandwidth reading performance method and device
CN111176566B (en) * 2019-12-25 2023-09-19 山东方寸微电子科技有限公司 eMMC read-write control method supporting queue command and storage medium
CN111190844A (en) * 2019-12-31 2020-05-22 杭州华澜微电子股份有限公司 Protocol conversion method and electronic equipment
CN112380148B (en) * 2020-11-30 2022-10-25 海光信息技术股份有限公司 Data transmission method and data transmission device
CN113485948B (en) * 2021-06-29 2023-11-14 成都忆芯科技有限公司 NVM bad block management method and control part
CN115794700A (en) * 2022-11-28 2023-03-14 无锡众星微系统技术有限公司 Aggregation management disc access method and device
CN119166037B (en) * 2023-10-23 2025-11-04 百代(上海)数据技术有限公司 Methods to improve storage performance
CN118012795B (en) * 2024-01-30 2025-09-05 荟普智能装备(深圳)有限公司 IO communication method, device, equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545030A (en) * 2003-11-14 2004-11-10 清华大学 Method of Dynamic Mapping of Data Distribution Based on Disk Characteristics

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155569B2 (en) * 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list
GB0301448D0 (en) * 2003-01-22 2003-02-19 Falanx Microsystems As Microprocessor systems
CN1543092A (en) * 2003-11-07 2004-11-03 清华大学 SCSI command optimization method based on FC-SAN storage device
CN100573437C (en) * 2006-12-28 2009-12-23 华中科技大学 A Method of I/O Area Prefetching Based on Continuity Clustering and Time Series
CN100552613C (en) * 2007-12-26 2009-10-21 杭州华三通信技术有限公司 A method, system and device for reading and writing SCSI data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545030A (en) * 2003-11-14 2004-11-10 清华大学 Method of Dynamic Mapping of Data Distribution Based on Disk Characteristics

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"RAID控制器中I/O调度算法研究";姜国松 等;《小型微型计算机系统》;20080415;第29卷(第4期);参见第1,3.1,3.2节 *

Also Published As

Publication number Publication date
CN103617136A (en) 2014-03-05

Similar Documents

Publication Publication Date Title
CN103617136B (en) SCSI drive side and I/O request control method
US11928332B2 (en) Namespace size adjustment in non-volatile memory devices
US11640242B2 (en) Namespace management in non-volatile memory devices
US8423722B1 (en) System and method for high performance command processing in solid state drives
US9720596B1 (en) Coalescing writes for improved storage utilization
US9135190B1 (en) Multi-profile memory controller for computing devices
US8874822B2 (en) Scheduling access requests for a multi-bank low-latency random read memory device
US20150169244A1 (en) Storage processor managing nvme logically addressed solid state disk array
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
CN114371813A (en) Identification and classification of write stream priorities
KR101579941B1 (en) Method and apparatus for isolating input/output of virtual machines
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
CN103559143A (en) Data copying management device and data copying method of data copying management device
CN107728936A (en) Method and apparatus for transmitting data processing requests
US12032849B2 (en) Distributed storage system and computer program product
US20240086092A1 (en) Method for managing namespaces in a storage device and storage device employing the same
CN103678573A (en) Method and system for achieving cache acceleration
WO2018024214A1 (en) Io flow adjustment method and device
CN108132760A (en) A kind of method and system for promoting SSD reading performances
WO2015058641A1 (en) Hybrid hard disk implementation method and device
CN104571960B (en) I/O request dispensing device and method, main frame, storage array and computer system
CN106502581A (en) Flash controller, flash memory control method and solid state hard disc
US20230028997A1 (en) Sgl processing acceleration method and storage device
US12277315B2 (en) Persistence logging over NVM express for storage devices application
US9122806B2 (en) SATA data appliance for providing SATA hosts with access to a configurable number of SATA drives residing in a SAS topology

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant