CN109032965B - 一种数据读取方法、主机及存储设备 - Google Patents

一种数据读取方法、主机及存储设备 Download PDF

Info

Publication number
CN109032965B
CN109032965B CN201710438477.1A CN201710438477A CN109032965B CN 109032965 B CN109032965 B CN 109032965B CN 201710438477 A CN201710438477 A CN 201710438477A CN 109032965 B CN109032965 B CN 109032965B
Authority
CN
China
Prior art keywords
storage area
data units
host
data
storage device
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
CN201710438477.1A
Other languages
English (en)
Other versions
CN109032965A (zh
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 CN201710438477.1A priority Critical patent/CN109032965B/zh
Publication of CN109032965A publication Critical patent/CN109032965A/zh
Application granted granted Critical
Publication of CN109032965B publication Critical patent/CN109032965B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据读取方法、主机及存储设备,用以在进行数据读取时提高读取效率。方法包括:主机向存储设备发送第一聚合请求,该第一聚合请求用于请求读取多个数据单元;存储设备向主机发送多个数据单元中的第一部分数据单元,该第一部分数据单元存储在存储设备的第一存储区域中;存储设备将多个数据单元中除第一部分数据单元之外的第二部分数据单元由存储设备的第二存储区域预存在第一存储区域中,其中,第一存储区域的数据读取速率高于第二存储区域的数据读取速率;主机向存储设备发送第二聚合请求,该第二聚合请求用于请求读取多个数据单元中除第一部分数据单元之外的第二部分数据单元;存储设备向主机发送第二部分数据单元。

Description

一种数据读取方法、主机及存储设备
技术领域
本申请涉及存储技术领域,尤其涉及一种数据读取方法、主机及存储设备。
背景技术
随着信息技术的发展,数据信息的数量急剧增长。随着数据量不断增长,如何快速访问这些数据成为一个亟需解决的问题。
从不同的存储介质中读取数据的速率是不同的,一般地,缓存等易失性存储区域的数据读取速率要高于磁盘等非易失性存储区域的数据读取速率。基于以上原理,现有技术中,一种提高数据读取效率的方法是采用数据预存机制:当存储设备接收到主机读取数据单元的请求1时,除了将请求1中请求读取的数据单元发送给主机外,还会按照数据单元在磁盘中的存储顺序,顺序地读取一些数据单元,并将这些数据单元预存在缓存中,这样,当存储设备再次接收到读取数据单元的请求2时,如果请求2中请求读取的数据单元为缓存中预存的数据单元,这时可直接从缓存中读取预存的数据单元,从而可以提高读取效率。
上述方案中存在如下问题:若主机请求读取数据单元时的顺序与磁盘中数据单元存储的顺序不一致,那么请求2中请求读取的数据单元也就不是存储设备预存在缓存中数据单元,而是存储在磁盘中的数据单元,因而存储设备需从磁盘中读取请求2中请求读取的数据单元,难以达到提高读取效率的目的。示例性地,如图1所示,主机向存储设备发送读取数据单元A的请求1,存储设备在将缓存中的A返回给主机的同时,将磁盘中A的下一个数据单元C预存在缓存中;然后,主机向存储设备发送读取数据单元B的请求,而此时缓存中并没有预存有B,因而存储设备需从磁盘中读取B并发送主机,也就无法达到提高读取效率的效果。
综上,在存储技术领域,亟需一种较优的数据读取方案,从而提高数据读取效率。
发明内容
本申请提供一种数据读取方法、主机及存储设备,用以在进行数据读取时提高读取效率。
第一方面,本申请实施例提供一种数据读取方法,该方法包括如下步骤:主机向存储设备发送第一聚合请求,该第一聚合请求用于请求读取多个数据单元;主机接收存储设备发送的多个数据单元中的第一部分数据单元,该第一部分数据单元存储在存储设备的第一存储区域中;主机向存储设备发送第二聚合请求,该第二聚合请求用于请求读取多个数据单元中除第一部分数据单元之外的第二部分数据单元;主机接收存储设备发送的第二部分数据单元,该第二部分数据单元由存储设备在接收到第一聚合请求后由第二存储区域预存至第一存储区域,其中,第一存储区域的数据读取速率高于第二存储区域的数据读取速率。
其中,多个数据单元可以是组成一个文件的多个数据块,也可以是多个文件。主机可在接收到用户设备发送的多个读取请求后,可将多个读取请求聚合成一个第一聚合请求,在第一聚合请求中请求读取多个数据单元。
采用上述方案,主机将需要读取多个数据单元的请求在第一聚合请求中一次性发送,由于第一存储区域的数据读取速率高于第二存储区域的数据读取速率,因而存储设备可先读取多个数据单元中存储在高速存储区域(第一存储区域)中的第一部分数据单元并发送给主机,同时,对于存储在低速存储区域(第二存储区域)的第二部分数据单元,可将其预存在第一存储区域中。这样,存储设备在后续再次接收到主机发送的第二聚合请求时,可直接从第一存储区域中读取第二部分数据单元并发送给主机。与现有技术中按照数据单元在磁盘中的存储顺序预存数据单元的方式相比,在第一方面提供的方法中,存储设备可以通过第一聚合请求预知主机在后续的请求(第二聚合请求)中请求读取的数据单元即为第二部分数据单元。因而,存储设备可以对第二部分数据单元进行精确预取,使得存储设备在接收到第二聚合请求时,第二部分数据单元已预存在第一存储区域中,从而可以快速响应第二聚合请求。避免了现有技术中出现的、存储设备从低速存储区域(磁盘)读取第二部分数据单元的情况,可以提高数据读取效率。
在上述第一方面提供的数据读取方法中,可采用如下方式生成第一聚合请求:在主机向存储设备发送第一聚合请求之前,主机接收用户设备发送的多个读取请求,该多个读取请求中的每个读取请求用于请求读取一个数据单元,多个读取请求与多个数据单元一一对应;然后,根据多个读取请求生成第一聚合请求。
采用上述方案,可将用户设备发送给主机的多个读取请求聚合成一个第一聚合请求,提供了一种生成第一聚合请求的实现方式。
在上述第一方面提供的数据读取方法中,第一存储区域可以为易失性存储区域,第二存储区域可以为非易失性存储区域。
第二方面,本申请实施例提供一种数据读取方法,该方法包括如下步骤:
存储设备接收主机发送的第一聚合请求,该第一聚合请求用于请求读取多个数据单元;存储设备向主机发送多个数据单元中的第一部分数据单元,该第一部分数据单元存储在存储设备的第一存储区域中;存储设备将多个数据单元中除第一部分数据单元之外的第二部分数据单元由存储设备的第二存储区域预存在第一存储区域中,第一存储区域的数据读取速率高于第二存储区域的数据读取速率;存储设备接收主机发送的第二聚合请求,该第二聚合请求用于请求读取第二部分数据单元;存储设备向主机发送第二部分数据单元。
其中,多个数据单元可以是组成一个文件的多个数据块,也可以是多个文件。主机可在接收到用户设备发送的多个读取请求后,可将多个读取请求聚合成一个第一聚合请求,在第一聚合请求中请求读取多个数据单元。
采用上述方案,存储设备接收到的第一聚合请求用于请求读取多个数据单元,由于第一存储区域的数据读取速率高于第二存储区域的数据读取速率,因而存储设备可先读取多个数据单元中存储在高速存储区域(第一存储区域)中的第一部分数据单元并发送给主机,同时,对于存储在低速存储区域(第二存储区域)的第二部分数据单元,可将其预存在第一存储区域中。这样,存储设备在后续再次接收到主机发送的第二聚合请求时,可直接从第一存储区域中读取第二部分数据单元并发送给主机。与现有技术中按照数据单元在磁盘中的存储顺序预存数据单元的方式相比,在第二方面提供的方法中,存储设备可以通过第一聚合请求预知主机在后续的请求(第二聚合请求)中请求读取的数据单元即为第二部分数据单元。因而,存储设备可以对第二部分数据单元进行精确预取,使得存储设备在接收到第二聚合请求时,第二部分数据单元已预存在第一存储区域中,从而可以快速响应第二聚合请求。避免了现有技术中出现的、存储设备从低速存储区域(磁盘)读取第二部分数据单元的情况,可以提高数据读取效率。
在一种可能的实现方式中,第一聚合请求可以由主机根据用户设备发送的多个读取请求生成,该多个读取请求中的每个读取请求用于请求读取一个数据单元,该多个读取请求与多个数据单元一一对应。
在一种可能的实现方式中,第一存储区域可以为易失性存储区域,第二存储区域可以为非易失性存储区域。
第三方面,本申请实施例提供一种主机,该主机包括发送单元和接收单元。
发送单元用于向存储设备发送第一聚合请求,该第一聚合请求用于请求读取多个数据单元。
接收单元用于接收存储设备发送的多个数据单元中的第一部分数据单元,该第一部分数据单元存储在存储设备的第一存储区域中。
发送单元还用于向存储设备发送第二聚合请求,该第二聚合请求用于请求读取多个数据单元中除第一部分数据单元之外的第二部分数据单元。
接收单元还用于接收存储设备发送的第二部分数据单元,该第二部分数据单元由存储设备在接收到第一聚合请求后由第二存储区域预存至第一存储区域,第一存储区域的数据读取速率高于第二存储区域的数据读取速率。
在一种可能的实现方式中,接收单元还用于:在发送单元向存储设备发送第一聚合请求之前,接收用户设备发送的多个读取请求,多个读取请求中的每个读取请求用于请求读取一个数据单元,多个读取请求与多个数据单元一一对应;该主机还包括:处理单元,该处理单元用于根据接收单元接收的多个读取请求生成第一聚合请求。
在一种可能的实现方式中,第一存储区域为易失性存储区域,第二存储区域为非易失性存储区域。
需要说明的是,基于同一发明构思,该主机解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的实施方式以及所带来的有益效果,重复之处不再赘述。
第四方面,本申请实施例还提供一种存储设备,该存储设备包括第一存储区域、第二存储区域、接收单元、处理单元和发送单元。其中,第一存储区域的数据读取速率高于第二存储区域的数据读取速率。
接收单元用于接收主机发送的第一聚合请求,该第一聚合请求用于请求读取多个数据单元。
处理单元用于基于第一聚合请求,读取第一存储区域中存储的第一部分数据单元,并将多个数据单元中除第一部分数据单元之外的第二部分数据单元由第二存储区域预存到第一存储区域中。
发送单元用于向主机发送多个数据单元中的第一部分数据单元。
接收单元还用于接收主机发送的第二聚合请求,该第二聚合请求用于请求读取第二部分数据单元。
处理单元还用于基于第二聚合请求,读取第一存储区域中存储的第二部分数据单元。
发送单元还用于向主机发送该第二部分数据单元。
在一种可能的实现方式中,该第一聚合请求由主机根据用户设备发送的多个读取请求生成,多个读取请求中的每个读取请求用于请求读取一个数据单元,多个读取请求与多个数据单元一一对应。
在一种可能的实现方式中,第一存储区域可以为易失性存储区域,第二存储区域可以为非易失性存储区域。
需要说明的是,基于同一发明构思,该存储设备解决问题的原理以及有益效果可以参见上述第二方面和第二方面的各可能的实施方式以及所带来的有益效果,重复之处不再赘述。
第五方面,本申请实施例提供一种主机,该主机包括处理器、收发器和存储器;其中,存储器用于存储指令,处理器用于执行存储器存储的指令,并控制收发器进行信号接收和信号发送,以执行上述第一方面和第一方面的各可能的实施方式中提供的方法。
第六方面,本申请实施例提供一种存储设备,该存储设备包括处理器、收发器和存储器;其中,存储器用于存储指令,处理器用于执行存储器存储的指令,并控制收发器进行信号接收和信号发送,以执行上述第二方面和第二方面的各可能的实施方式中提供的方法。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或其各种可能的实现方式中提供的方法,或者执行上述第二方面或其各种可能的实现方式中提供的方法。
第八方面,本申请提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或其各种可能的实现方式中提供的方法,或者执行上述第二方面或其各种可能的实现方式中提供的方法。
附图说明
图1为现有技术提供的一种数据读取方案的流程示意图;
图2为本申请实施例提供的主机与存储设备进行交互的场景的示意图;
图3为本申请实施例提供的一种数据读取方法的流程示意图;
图4为本申请实施例提供的另一种数据读取方法的流程示意图;
图5为本申请实施例提供的一种主机的结构示意图;
图6为本申请实施例提供的另一种主机的结构示意图;
图7为本申请实施例提供的一种存储设备的结构示意图;
图8为本申请实施例提供的另一种存储设备的结构示意图。
具体实施方式
在存储技术领域,从不同的存储介质中读取数据的速率是不同的,一般地,缓存等易失性存储区域的数据读取速率要高于磁盘等非易失性存储区域的数据读取速率。因此,现有技术中,为了提高数据读取效率,通常采用如下做法:当存储设备接收到主机读取数据单元的请求1时,除了将请求1中请求读取的数据单元发送给主机外,还会按照数据单元在磁盘中的存储顺序,顺序地读取一些数据单元,并将这些数据单元预存在缓存中,这样,当存储设备再次接收到读取数据单元的请求2时,如果请求2中请求读取的数据单元为缓存中预存的数据单元,这时可直接从缓存中读取预存的数据单元,从而可以提高读取效率。
但是,在现有技术提供的方案中,若主机请求读取数据单元时的顺序与磁盘中数据单元存储的顺序不一致,那么请求2中请求读取的数据单元也就不是存储设备预存在缓存中的数据单元,而是存储在磁盘中的数据单元。因而存储设备需从磁盘中读取请求2中请求读取的数据单元,难以达到提高读取效率的目的。
本申请实施例提供一种数据读取方法、主机及存储设备,用以在进行数据读取时提高读取效率。
下面对本申请的应用场景做具体介绍。
如图2所示,本申请涉及主机向存储设备发送读取数据单元的请求,存储设备将主机请求读取的数据单元发送给主机。
其中,主机可包含当前技术已知的任何计算设备,如服务器、台式计算机、平板电脑、个人计算机、手持式计算机、个人数字助理等。存储设备可以包括当前技术已知的存储设备,如独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID)、磁盘簇(Just a Bunch Of Disks,JBOD)、直接存取存储器(Direct Access Storage Device,DASD)等。
本申请实施例中,存储设备可以内置于主机中,也可以是独立的存储设备,本申请对此不做具体限定。
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。
本申请提供一种数据读取方法、主机及存储设备,用以在进行数据读取时提高读取效率。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
需要理解的是,本申请中所涉及的多个,是指两个或两个以上。在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
参见图3,为本申请实施例提供的一种数据读取方法。该方法包括如下步骤:
S301:主机向存储设备发送第一聚合请求。
其中,第一聚合请求用于请求读取多个数据单元。
可选地,在S301主机向存储设备发送第一聚合请求之前,主机可接收用户设备发送的多个读取请求,多个读取请求中的每个读取请求用于请求读取一个数据单元,多个读取请求与多个数据单元一一对应;然后,主机根据多个读取请求生成第一聚合请求。
本申请实施例中,多个数据单元可以是组成一个文件的多个数据块,也可以是多个文件。主机可在接收到用户设备发送的多个读取请求后,可将多个读取请求聚合成一个第一聚合请求,在第一聚合请求中请求读取多个数据单元。
比如,用户设备需要读取一个文件,该文件较大,用户设备将该文件划分为多个数据单元,并分别通过多个读取请求去请求读取组成该文件的多个数据单元。主机在接收到多个读取请求后,可将多个读取请求聚合成第一聚合请求,在第一聚合请求中请求读取该文件(即多个数据单元)。
再比如,用户设备在设定时长内分别通过多个读取请求向主机请求读取多个文件,主机在设定时长内接收到该多个读取请求后,可将多个读取请求聚合成第一聚合请求,在第一聚合请求中指示需要读取的多个文件。
S302:存储设备向主机发送多个数据单元中的第一部分数据单元。
其中,第一部分数据单元存储在存储设备的第一存储区域中。
S303:存储设备将多个数据单元中除第一部分数据单元之外的第二部分数据单元由存储设备的第二存储区域预存在第一存储区域中。
其中,第一存储区域的数据读取速率高于第二存储区域的数据读取速率。也就是说,存储设备在S202中先将存储在第一存储区域中的第一部分数据单元返回给主机的原因是:存储设备读取第二部分数据单元的数据读取速率较慢,而读取第一部分数据单元的数据读取速率较快,因而存储设备可快速读取到第一部分数据单元并返回给主机,实现对第一聚合请求的快速响应。
S304:主机向存储设备发送第二聚合请求。
其中,第二聚合请求用于请求读取多个数据单元中除第一部分数据单元之外的第二部分数据单元。
S305:存储设备向主机发送第二部分数据单元。
本申请实施例中,多个数据单元被划分为两部分:第一部分数据单元和第二部分数据单元。其中,第一部分数据单元存储在第一存储区域中,第二部分数据单元存储在第二存储区域中。在S301中,主机向存储设备发送的第一聚合请求中向存储设备指示了主机需要读取的多个数据单元。由于第一存储区域的数据读取速率高于第二存储区域的数据读取速率,存储设备在S302中可先将存储在第一存储区域中的第一部分数据单元发送给主机,实现对第一聚合请求的快速响应,并在S303中将第二存储区域中的第二部分数据单元预存至第一存储区域。这样,当存储设备再次接收到第二聚合请求后,就可直接从第一存储区域中读取第二部分数据单元并发送给主机,由于此时第二部分数据单元也存储在第二存储区域中,因而可以实现对第二聚合请求的快速响应。从而,执行S301~S305后,可以实现从第一存储区域读取到第一部分数据单元和第二部分数据单元。
如前所述,第一存储区域的数据读取速率高于第二存储区域的数据读取速率。示例性地,第一存储区域可以是易失性存储区域,如缓存区、闪存区等;第二存储区域可以是非易失性存储区域,如固态硬盘(Solid State Drives,SSD)、机械硬盘和磁盘等。
需要说明的是,本申请实施例中,在S304主机向存储设备发送第二聚合请求之前,主机可能会接收到用户设备发送的至少一个读取请求,该至少一个读取请求用于请求读取至少一个数据单元。此时,主机可将该至少一个读取请求聚合在第二聚合请求中发送给存储设备,这样,存储设备可在从第一存储区域中读取第二部分数据单元并发送给主机的同时,将该至少一个读取请求请求读取的至少一个数据单元由第二存储区域预存预存在第一存储区域中。这样,可在主机后续向存储设备发送聚合请求(比如,第三聚合请求)时,从第一存储区域中读取该至少一个数据单元并发送给主机,进一步提高读取该至少一个数据单元的效率。
同样需要说明的是,由于第一存储区域的空间限制,存储设备在将第二部分数据单元由第二存储区域预存在第一存储区域中的时候,第一存储区域中可能仅能存储第二部分数据单元中的部分数据单元。在这种情况下,存储设备可将第二部分数据单元中的部分数据单元预存在第一存储区域中,并在接收到第二聚合请求后将该部分数据单元发送给主机,然后再预存第二部分数据单元中除该部分数据单元之外的其他数据单元。等待主机再次发送聚合请求(比如第四聚合请求)时再将该其他数据单元发送给主机。
示例性地,假设主机在第一聚合请求中请求读取A、B、C、D、E、F、G这七个数据单元,其中,数据单元A存储在第一存储区域中,而其余的六个数据单元存储在第二存储区域中,第一存储区域中最多存储四个数据单元。那么,存储设备在接收到第一聚合请求后,从第一存储区域中读取A并发送给主机,同时将B、C、D、E、F、G预存在第一存储区域。由于第一存储区域最多存储四个数据单元,因此存储设备先将B、C、D、E预存在第一存储区域中。然后,存储设备在接收主机发送的到请求读取B、C、D、E、F、G的第二聚合请求后,从第一存储区域中读取B、C、D、E发送给主机,并将F和G预存在第一存储区域。当再次接收到请求读取F、G的聚合请求后,将F和G发送给主机。至此,实现了主机从存储设备的第一存储区域中读取到A、B、C、D、E、F、G这七个数据单元。
本申请实施例中,主机将需要读取多个数据单元的请求在第一聚合请求中一次性发送,由于第一存储区域的数据读取速率高于第二存储区域的数据读取速率,因而存储设备可先读取多个数据单元中存储在高速存储区域(第一存储区域)中的第一部分数据单元并发送给主机,同时,对于存储在低速存储区域(第二存储区域)的第二部分数据单元,可将其预存在第一存储区域中。这样,存储设备在后续再次接收到主机发送的第二聚合请求时,可直接从第一存储区域中读取第二部分数据单元并发送给主机。与现有技术中按照数据单元在磁盘中的存储顺序预存数据单元的方式相比,本申请实施例中存储设备可以通过第一聚合请求预知主机在后续的请求(第二聚合请求)中请求读取的数据单元即为第二部分数据单元。因而,存储设备可以对第二部分数据单元进行精确预取,使得存储设备在接收到第二聚合请求时,第二部分数据单元已预存在第一存储区域中,从而可以快速响应第二聚合请求。避免了现有技术中出现的、存储设备从低速存储区域(磁盘)读取第二部分数据单元的情况,可以提高数据读取效率。
综上,采用本申请实施例提供的方法,可以提高数据读取速率较高的第一存储区域的使用频率,实现多个数据单元均从第一存储区域读取,缩短了第一聚合请求和第二聚合请求的响应时间,从而提高数据读取效率。本申请实施例所提供的方法,适应于主机需向存储设备发送大量并发的读取请求、且对返回数据单元的顺序没有严格要求的场景。特别地,对于数据单元分布比较随机的存储设备,采用本申请实施例所提供的方法可以较好提高数据读取效率。
此外,采用本申请实施例提供的方法,在将数据单元由第二存储区域预存到第一存储区域时,由于预取操作是针对主机下一次请求(第二聚合请求)中请求读取的数据单元进行的精确预取,因而可以避免现有技术中出现的、频繁地从第二存储区域中预取不必要的数据单元(即主机不需要读取的数据单元)的现象,从而减少从第二存储区域中读取数据单元的次数,提高第二存储区域的使用寿命。
基于以上实施例,本申请实施例还提供一种数据读取方法,该方法可视为图3所示的数据读取方法的一个具体示例。参见图4,该方法包含如下步骤。
1、主机中的INI模块在接收到APP模块发送的读取数据单元A、B、C的请求后,向存储设备发送读取A、B、C的请求1。
其中,请求1可视为图3所示的数据读取方法中的第一聚合请求的一个具体示例。
其中,APP模块和INI模块为主机中的两个模块。APP模块用于接收用户设备发送的、读取数据单元的具体请求;INI模块用于执行数据单元读写的具体处理过程。
在图4所示的方法中,读取A、B、C的请求1可以由三个来自用户设备的读取请求聚合而成,这三个读取请求分别用于请求读取数据单元A、B和C。具体地,将三个读取请求聚合成请求1的操作可以由主机中的APP模块执行,也可以由主机中的INI模块执行,图4中仅以APP模块执行聚合操作为例进行说明。
2、存储设备中的TGT模块在接收到请求1后,从LUN读取缓存中存储的数据单元B返回给主机。
其中,缓存可视为图3所示的数据读取方法中的第一存储区域的一个具体示例。
其中,主机中的TGT模块用于执行数据单元读写的具体处理过程。主机中的LUN为一段逻辑存储区域。大多数存储设备并不直接对操作系统呈现存储设备所包含的存储区域本身,而是将存储区域的存储空间映射为一段逻辑存储区域(LUN)供操作系统使用。因此,对存储设备的数据单元进行的读取操作实际上是在LUN层面进行的。
3、存储设备的中的TGT模块将数据单元A和C由磁盘预存在缓存中。
其中,磁盘可视为图3所示的数据读取方法中的第二存储区域的一个具体示例。缓存的数据读取速率高于磁盘的数据读取速率。
4、主机中的INI模块在接收到数据单元B后,将数据单元B发送给APP模块。
5、主机中的INI模块在接收到APP模块发送的读取A、C的请求后,向存储设备发送读取A、C的请求2。
其中,请求2可视为图3所示的数据读取方法中的第二聚合请求的一个具体示例。
6、存储设备中的TGT模块在接收到请求2后,从LUN读取缓存中预存的数据单元A和C返回给主机。
7、主机中的INI模块在接收到数据单元A和C后,将数据单元A和C发送给APP模块。
在图4所示方法中,数据单元A、B、C都是从缓存中读取的,而缓存中的数据读取速率高于磁盘中的数据读取速率,因而采用图4所示的数据读取方法可提高数据读取效率。
综上,采用本申请实施例提供的数据读取方法,可以在进行数据读取时提高数据读取效率。
基于以上实施例,本申请实施例提供一种主机,该主机可用于执行图3或图4所示的数据读取方法中主机所执行的操作。参见图5,该主机500包括发送单元501和接收单元502。其中,
发送单元501用于向存储设备发送第一聚合请求,该第一聚合请求用于请求读取多个数据单元。
接收单元502用于接收存储设备发送的多个数据单元中的第一部分数据单元,该第一部分数据单元存储在存储设备的第一存储区域中。
发送单元501还用于向存储设备发送第二聚合请求,该第二聚合请求用于请求读取多个数据单元中除第一部分数据单元之外的第二部分数据单元。
接收单元502还用于接收存储设备发送的第二部分数据单元,该第二部分数据单元由存储设备在接收到第一聚合请求后由第二存储区域预存至第一存储区域,第一存储区域的数据读取速率高于第二存储区域的数据读取速率。
其中,第一存储区域可以为易失性存储区域,第二存储区域可以为非易失性存储区域。
此外,接收单元502还可用于在发送单元501向存储设备发送第一聚合请求之前,接收用户设备发送的多个读取请求,多个读取请求中的每个读取请求用于请求读取一个数据单元,多个读取请求与多个数据单元一一对应。主机500还包括处理单元,该处理单元用于根据接收单元502接收的多个读取请求生成第一聚合请求。
图5所示的主机500可用于执行图3或图4所示的数据读取方法中主机所执行的操作,图5所示主机500中未详细解释的实现方式可参见图3或图4所示的数据读取方法中的相关描述。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
图6示出了主机500的另一种可能的结构示意图。参见图6,主机600可以包括处理器601,主机500中的处理单元对应的实体的硬件可以为处理器601。主机600还可以包括收发器604,上述发送单元501、接收单元502对应的实体的硬件可以为收发器604。处理器601,可以是一个中央处理模块(英文:central processing unit,简称CPU),或者为数字处理模块等等。主机600还包括:存储器602,用于存储处理器601执行的程序。存储器602可以是非易失性存储器,比如硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)等,还可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器601用于执行存储器602存储的程序代码,具体调用所述存储器602中存储的程序指令。
本申请实施例中不限定上述处理器601以及存储器602之间的具体连接介质。本申请实施例在图6中处理器601以及存储器602之间通过总线603连接,总线在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于以上实施例,本申请实施例提供一种存储设备,该存储设备可用于执行图3或图4所示的数据读取方法中存储设备所执行的操作。参见图7,该存储设备700包括第一存储区域701、第二存储区域702、接收单元703、处理单元704以及发送单元705。其中,第一存储区域701的数据读取速率高于第二存储区域702的数据读取速率。
接收单元703用于接收主机发送的第一聚合请求,该第一聚合请求用于请求读取多个数据单元。
处理单元704用于基于第一聚合请求,读取第一存储区域701中存储的第一部分数据单元,并将多个数据单元中除第一部分数据单元之外的第二部分数据单元由第二存储区域702预存到第一存储区域701中。
发送单元705用于向主机发送多个数据单元中的第一部分数据单元。
接收单元703还用于接收主机发送的第二聚合请求,该第二聚合请求用于请求读取第二部分数据单元。
处理单元704还用于基于第二聚合请求,读取第一存储区域701中存储的第二部分数据单元。
发送单元705还用于向主机发送第二部分数据单元。
可选地,第一聚合请求由主机根据用户设备发送的多个读取请求生成,多个读取请求中的每个读取请求用于请求读取一个数据单元,多个读取请求与多个数据单元一一对应。
可选地,第一存储区域701为易失性存储区域,第二存储区域702为非易失性存储区域。
需要说明的是,图7所示的存储设备700可用于执行图3或图4所示的数据读取方法中存储设备所执行的操作,图7所示存储设备700中未详细解释的实现方式可参见图3或图4所示的数据读取方法中的相关描述。
图8示出了存储设备700的另一种可能的结构示意图。参见图8,存储设备800可以包括处理器801,存储设备700中的处理单元704对应的实体的硬件可以为处理器801。存储设备800还可以包括收发器804,上述接收单元703、发送单元705对应的实体的硬件可以为收发器804。处理器801,可以是一个中央处理模块(英文:central processing unit,简称CPU),或者为数字处理模块等等。存储设备800还包括:存储器802,用于存储处理器801执行的程序。存储设备700中的第一存储区域701和第二存储区域702对应的实体的硬件可以为存储器802。存储器802可以是非易失性存储器,比如硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)等,还可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器801用于执行存储器802存储的程序代码,具体调用所述存储器802中存储的程序指令。
本申请实施例中不限定上述处理器801以及存储器802之间的具体连接介质。本申请实施例在图8中处理器801以及存储器802之间通过总线803连接,总线在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
综上,本申请实施例提供一种数据读取方法、主机及存储设备。采用本申请实施例提供的数据读取方法、主机及存储设备,可以在进行数据读取时提高数据读取效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (11)

1.一种数据读取方法,其特征在于,包括:
主机向存储设备发送第一聚合请求,所述第一聚合请求用于请求读取多个数据单元;
所述主机接收所述存储设备发送的所述多个数据单元中的第一部分数据单元,所述第一部分数据单元存储在所述存储设备的第一存储区域中;
所述主机向所述存储设备发送第二聚合请求,所述第二聚合请求用于请求读取所述多个数据单元中除所述第一部分数据单元之外的第二部分数据单元;
所述主机接收所述存储设备发送的所述第二部分数据单元,所述第二部分数据单元由所述存储设备在接收到所述第一聚合请求后由第二存储区域预存至所述第一存储区域,所述第一存储区域的数据读取速率高于所述第二存储区域的数据读取速率;
其中,所述第一存储区域为易失性存储区域,所述第二存储区域为非易失性存储区域。
2.如权利要求1所述的方法,其特征在于,在主机向存储设备发送第一聚合请求之前,还包括:
所述主机接收用户设备发送的多个读取请求,所述多个读取请求中的每个读取请求用于请求读取一个数据单元,所述多个读取请求与所述多个数据单元一一对应;
所述主机根据所述多个读取请求生成所述第一聚合请求。
3.一种数据读取方法,其特征在于,包括:
存储设备接收主机发送的第一聚合请求,所述第一聚合请求用于请求读取多个数据单元;
所述存储设备向所述主机发送所述多个数据单元中的第一部分数据单元,所述第一部分数据单元存储在所述存储设备的第一存储区域中;
所述存储设备将所述多个数据单元中除所述第一部分数据单元之外的第二部分数据单元由所述存储设备的第二存储区域预存在所述第一存储区域中,所述第一存储区域的数据读取速率高于所述第二存储区域的数据读取速率;
所述存储设备接收所述主机发送的第二聚合请求,所述第二聚合请求用于请求读取所述第二部分数据单元;
所述存储设备向所述主机发送所述第二部分数据单元;
其中,所述第一存储区域为易失性存储区域,所述第二存储区域为非易失性存储区域。
4.如权利要求3所述的方法,其特征在于,所述第一聚合请求由所述主机根据用户设备发送的多个读取请求生成,所述多个读取请求中的每个读取请求用于请求读取一个数据单元,所述多个读取请求与所述多个数据单元一一对应。
5.一种主机,其特征在于,包括:
发送单元,用于向存储设备发送第一聚合请求,所述第一聚合请求用于请求读取多个数据单元;
接收单元,用于接收所述存储设备发送的所述多个数据单元中的第一部分数据单元,所述第一部分数据单元存储在所述存储设备的第一存储区域中;
所述发送单元,还用于向所述存储设备发送第二聚合请求,所述第二聚合请求用于请求读取所述多个数据单元中除所述第一部分数据单元之外的第二部分数据单元;
所述接收单元,还用于接收所述存储设备发送的所述第二部分数据单元,所述第二部分数据单元由所述存储设备在接收到所述第一聚合请求后由第二存储区域预存至所述第一存储区域,所述第一存储区域的数据读取速率高于所述第二存储区域的数据读取速率;
其中,所述第一存储区域为易失性存储区域,所述第二存储区域为非易失性存储区域。
6.如权利要求5所述的主机,其特征在于,所述接收单元还用于:
在所述发送单元向存储设备发送第一聚合请求之前,接收用户设备发送的多个读取请求,所述多个读取请求中的每个读取请求用于请求读取一个数据单元,所述多个读取请求与所述多个数据单元一一对应;
所述主机还包括:
处理单元,用于根据所述接收单元接收的所述多个读取请求生成所述第一聚合请求。
7.一种存储设备,其特征在于,包括:
第一存储区域和第二存储区域,所述第一存储区域的数据读取速率高于所述第二存储区域的数据读取速率;
接收单元,用于接收主机发送的第一聚合请求,所述第一聚合请求用于请求读取多个数据单元;
处理单元,用于基于第一聚合请求,读取第一存储区域中存储的第一部分数据单元,并将所述多个数据单元中除所述第一部分数据单元之外的第二部分数据单元由所述第二存储区域预存到所述第一存储区域中;
发送单元,用于向所述主机发送所述多个数据单元中的第一部分数据单元;
所述接收单元,还用于接收所述主机发送的第二聚合请求,所述第二聚合请求用于请求读取所述第二部分数据单元;
所述处理单元,还用于基于第二聚合请求,读取第一存储区域中存储的第二部分数据单元;
所述发送单元,还用于向所述主机发送所述第二部分数据单元;
其中,所述第一存储区域为易失性存储区域,所述第二存储区域为非易失性存储区域。
8.如权利要求7所述的存储设备,其特征在于,所述第一聚合请求由所述主机根据用户设备发送的多个读取请求生成,所述多个读取请求中的每个读取请求用于请求读取一个数据单元,所述多个读取请求与所述多个数据单元一一对应。
9.一种主机,其特征在于,所述主机包括处理器、收发器和存储器;
所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并控制所述收发器进行信号接收和信号发送,以执行如权利要求1或2所述的方法。
10.一种存储设备,其特征在于,所述存储设备包括处理器、收发器和存储器;
所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并控制所述收发器进行信号接收和信号发送,以执行如权利要求3或4所述的方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使所述计算机执行如权利要求1或2所述的方法,或3或4所述的方法。
CN201710438477.1A 2017-06-12 2017-06-12 一种数据读取方法、主机及存储设备 Active CN109032965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710438477.1A CN109032965B (zh) 2017-06-12 2017-06-12 一种数据读取方法、主机及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710438477.1A CN109032965B (zh) 2017-06-12 2017-06-12 一种数据读取方法、主机及存储设备

Publications (2)

Publication Number Publication Date
CN109032965A CN109032965A (zh) 2018-12-18
CN109032965B true CN109032965B (zh) 2021-01-12

Family

ID=64629116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710438477.1A Active CN109032965B (zh) 2017-06-12 2017-06-12 一种数据读取方法、主机及存储设备

Country Status (1)

Country Link
CN (1) CN109032965B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391756A (zh) * 2020-03-11 2021-09-14 华为技术有限公司 数据存储方法和设备
CN114968073A (zh) * 2021-02-27 2022-08-30 华为技术有限公司 数据预取的方法、设备及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206624A (zh) * 2006-12-21 2008-06-25 扬智科技股份有限公司 读取外部存储器的方法与装置
CN102541475A (zh) * 2012-03-12 2012-07-04 成都市华为赛门铁克科技有限公司 数据存储方法和数据存储装置
CN102609360A (zh) * 2012-01-12 2012-07-25 华为技术有限公司 一种数据处理方法、装置及系统
CN102713824A (zh) * 2009-10-29 2012-10-03 康德斯威技术公司 基于未来使用估计的分配存储器
CN103927265A (zh) * 2013-01-04 2014-07-16 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
CN104572478A (zh) * 2013-10-14 2015-04-29 联想(北京)有限公司 数据存取方法和数据存取装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4426261B2 (ja) * 2003-11-25 2010-03-03 株式会社日立製作所 チャネルアダプタ及びディスクアレイ装置
US7930496B2 (en) * 2006-06-29 2011-04-19 International Business Machines Corporation Processing a read request to a logical volume while relocating a logical volume from a first storage location to a second storage location using a copy relationship
CN102495710B (zh) * 2011-10-25 2015-04-01 曙光信息产业(北京)有限公司 一种处理数据只读访问请求的方法
CN103136291B (zh) * 2011-12-05 2016-09-07 英顺源(上海)科技有限公司 分次储存外部数据的数据处理系统及其方法
CN103019949B (zh) * 2012-12-27 2015-08-19 华为技术有限公司 一种写合并属性内存空间的分配方法及装置
CN103064795B (zh) * 2012-12-31 2015-12-02 华为技术有限公司 一种存储设备的控制方法及相关装置
KR102473665B1 (ko) * 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206624A (zh) * 2006-12-21 2008-06-25 扬智科技股份有限公司 读取外部存储器的方法与装置
CN102713824A (zh) * 2009-10-29 2012-10-03 康德斯威技术公司 基于未来使用估计的分配存储器
CN102609360A (zh) * 2012-01-12 2012-07-25 华为技术有限公司 一种数据处理方法、装置及系统
CN102541475A (zh) * 2012-03-12 2012-07-04 成都市华为赛门铁克科技有限公司 数据存储方法和数据存储装置
CN103927265A (zh) * 2013-01-04 2014-07-16 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
CN104572478A (zh) * 2013-10-14 2015-04-29 联想(北京)有限公司 数据存取方法和数据存取装置

Also Published As

Publication number Publication date
CN109032965A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
KR101993915B1 (ko) 원격으로 액세스되는 데이터의 효율적인 라이브-이송
US9898341B2 (en) Adjustable priority ratios for multiple task queues
US8904061B1 (en) Managing storage operations in a server cache
CN103329111B (zh) 一种基于块存储的数据处理方法、装置及系统
KR102446733B1 (ko) 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치
CN109213696B (zh) 用于缓存管理的方法和设备
KR102098246B1 (ko) 호스트, 저장 장치, 및 이를 포함하는 시스템의 동작 방법
US11237761B2 (en) Management of multiple physical function nonvolatile memory devices
US10789170B2 (en) Storage management method, electronic device and computer readable medium
CN113032293A (zh) 缓存管理器及控制部件
CN108710474A (zh) 一种数据存储方法、装置及计算机存储介质
CN109086008B (zh) 固态硬盘的数据处理方法以及固态硬盘
KR20180089273A (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
CN112214157A (zh) 主机输出输入命令的执行装置及方法及计算机可读取存储介质
CN109947667B (zh) 数据访问预测方法和装置
CN109032965B (zh) 一种数据读取方法、主机及存储设备
US9513821B2 (en) Apparatus and method for indicating flash memory life
CN109375868B (zh) 一种数据存储方法、调度装置、系统、设备及存储介质
CN101183298A (zh) 一种scsi数据读写方法、系统和装置
CN105868121B (zh) 一种信息处理方法及电子设备
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
US10564847B1 (en) Data movement bulk copy operation
CN116400982B (zh) 配置中继寄存器模块的方法和装置、计算设备和可读介质
CN115883022B (zh) Dma传输控制方法、装置、电子设备及可读存储介质
CN111859225A (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