CN106909312B - 用于控制从存储系统读取数据的方法和装置 - Google Patents
用于控制从存储系统读取数据的方法和装置 Download PDFInfo
- Publication number
- CN106909312B CN106909312B CN201510981602.4A CN201510981602A CN106909312B CN 106909312 B CN106909312 B CN 106909312B CN 201510981602 A CN201510981602 A CN 201510981602A CN 106909312 B CN106909312 B CN 106909312B
- Authority
- CN
- China
- Prior art keywords
- storage device
- read requests
- storage devices
- storage
- completed
- 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
Images
Classifications
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提出了用于控制从存储系统读取数据的方法和装置。该存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中。该方法包括:接收用于从所述存储系统读取数据的读请求;根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及将所述读请求发送到所述目标存储设备。根据本公开的实施例的方法或装置,能够缩短I/O响应时间、提高I/O性能。
Description
技术领域
本公开的实施例涉及数据存储系统,并且更具体地涉及用于控制从存储系统读取数据的方法和装置。
背景技术
在数据存储系统中,为了提高数据的安全性和可用性,可以同时存储数据的多个备份。独立磁盘冗余阵列(RAID)1是这种解决方案的一个示例。RAID 1通过磁盘数据镜像实现数据冗余,其在RAID组内的多个独立磁盘上产生互为备份的数据。在RAID 1处于最优状态时,即RAID组内的每个磁盘都可用时,RAID可以访问其中的任何一个磁盘以读取数据。根据RAID 1的特性,来自RAID组中任一磁盘的数据是相同的。当一个磁盘繁忙、从而不能够及时处理原始数据时,可直接从另一磁盘上的镜像拷贝中读取数据,因此RAID 1可以提高读取性能。
发明内容
为了获得最优的输入/输出(I/O)性能,如前所述的RAID可以将读I/O请求发送到处理较快的磁盘,这能够显著缩短I/O的响应时间,提高RAID的整体每秒输入输出(IOPs)性能。
通常,磁盘的响应时间取决于,例如,磁盘介质响应时间、磁盘队列深度、I/O大小、逻辑区块寻址(LBA)分布以及小型计算机系统接口(SCSI)端口的背景业务量负载。以具有两个处理器节点和共享的后端磁盘的存储架构为例(例如EMC公司的VNX2序列采用了这种架构),在该架构中,读业务量独立地并行地来自每个处理器节点。如果到处理器节点的链路仅在一侧发生故障(即单回路故障的情况),则读业务将被重定向到另一侧的对等体,然后对等处理器节点将把该I/O请求发送到后端磁盘。这种重定向对于估计磁盘响应时间造成很多困难,例如,这使得针对每个I/O进行的响应时延的统计结果变化很快,同时变化很大。因此这种估计结果难以提供可靠的信息用于确定合适的磁盘来服务新的I/O请求,这也使得RAID组难以在组内的磁盘间进行有效的负载平衡。
为了解决以上问题中的至少一些问题,本公开的实施例提出了用于控制从存储系统读取数据的方法和装置。该方法和装置不限于应用于以上作为示例提到的RAID 1存储系统,而是可以被更广泛地应用于存在类似问题的其他存储系统。
下面给出了对各实施例的简要概述,以提供对各种实施例的一些方面的基本理解。该概述不旨在标识关键元素的要点或描述各种实施例的范围。其唯一目的在于以简化形式呈现一些概念,作为对后述更具体描述的前序。
本公开的第一方面提供了一种用于控制从存储系统读取数据的方法。该存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中。该方法包括:接收用于从所述存储系统读取数据的读请求;根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及将所述读请求发送到所述目标存储设备。
在一个实施例中,针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目可以通过以下方式进行更新:在所述多个存储设备中的第一存储设备接收到新的读请求时,将针对所述第一存储设备的尚未完成的读请求数目加一;以及在所述多个存储设备中的第二存储设备处理完一个读请求时,将针对所述第二存储设备的尚未完成的读请求数目减一,并且将针对所述第二存储设备的已完成的读请求数目加一。
在另一实施例中,该方法可以进一步包括:在将所述读请求发送到所述目标存储设备后,将针对所述多个存储设备中的每个存储设备的已完成的读请求数目清零。
在又一实施例中,根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备可以包括:将所述多个存储设备中的、未完成的读请求数目最少的一个存储设备确定为所述目标存储设备。在一个实施例中,将所述多个存储设备中的、未完成的读请求数目最少的存储设备确定为所述目标存储设备可以进一步包括:将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目超过预定阈值的一个存储设备确定为所述目标存储设备,并且在所述一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值时,从所述一组存储设备中随机选取一个存储设备作为所述目标存储设备。在一个替代实施例中,将所述多个存储设备中的、未完成的读请求数目最少的存储设备确定为所述目标存储设备可以进一步包括:将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目最多的一个存储设备确定为所述目标存储设备。
在一个实施例中,替代地或者附加地,针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目可以通过以下方式进行更新:在针对所述多个存储设备中的第三存储设备的未完成的读请求数目为零、但没有新的读请求到达所述第三存储设备时,将针对所述第三存储设备的已完成的读请求数目清零,并且将用于处理所述读请求的目标存储设备的索引设置为无效;并且根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备可以包括:在所述目标存储设备的索引被设置为无效时,从所述多个存储设备中随机选取一个存储设备作为所述目标存储设备。
本公开的第二方面提供了另一种用于控制从存储系统读取数据的方法。该存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中。该方法包括:通过将最优存储设备的索引设定为无效、并且将针对所述多个存储设备中的每个存储设备的未完成的读请求数目和已完成的读请求数目设置为0来进行初始化,并且执行以下步骤:
步骤1:在所述多个存储设备中的一个存储设备的读请求处理完成时,将针对所述一个存储设备的未完成的读请求数目减1;并进入步骤2;
步骤2:确定针对所述一个存储设备的未完成的读请求数目是否为0,在所述未完成的读请求数目为0时,进入步骤3;否则进入步骤5;
步骤3:确定所述最优存储设备的索引是否为无效或者等于所述一个存储设备的索引;并且如果所述最优存储设备的索引为无效或者等于所述一个存储设备的索引,则进入步骤5,否则进入步骤4;
步骤4:将所述最优存储设备的所述索引设置为无效,并且将针对所述一个存储设备的已完成的读请求数目设置为0;并进入步骤8;
步骤5:将针对所述一个存储设备的已完成的读请求数目加1;并进入步骤6;
步骤6:确定针对所述一个存储设备的已完成的读请求数目是否超过预定阈值;并且如果针对所述一个存储设备的已完成的读请求数目超过所述预定阈值,则进入步骤7,否则,进入步骤8;
步骤7:将所述最优存储设备的索引设置为所述一个存储设备的索引,并且将针对所述多个存储设备中的每个存储设备的已完成的读请求数目清零;进入步骤8;
步骤8:如果所述最优存储设备的索引为无效,则从所述多个存储设备中随机选取目标存储设备,用于服务下一读请求;否则,从所述多个存储设备中选取与所述最优存储设备的索引对应的存储设备作为目标存储设备,用于服务下一读请求。
本公开的第三方面提供了一种用于控制从存储系统读取数据的装置,所述存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中,所述装置包括:计数模块,被配置为针对所述多个存储设备中的每个存储设备,记录当前尚未完成的读请求数目、以及在预定时间段内已完成的读请求数目;读请求接收模块,被配置为接收用于从所述存储系统读取数据的读请求;确定模块,被配置为根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及读请求分配模块,被配置为将所述读请求发送到所述目标存储设备。
本公开的第四方面提供了用于控制从存储系统读取数据的另一装置,该存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中,该装置包括:初始化模块,被配置为通过将最优存储设备的索引设定为无效、并且将针对所述多个存储设备中的每个存储设备的未完成的读请求数目和已完成的读请求数目设置为0来进行初始化,以及第一计数模块,被配置为在所述多个存储设备中的一个存储设备的读请求处理完成时,将针对所述一个存储设备的未完成的读请求数目减1;并将更新后的所述未完成的读请求数目发送给第一判断模块;第一判断模块,被配置为确定针对所述一个存储设备的未完成的读请求数目是否为0,在所述未完成的读请求数目为0时,促使第二判断模块执行动作,否则促使第二计数模块执行动作;第二判断模块,被配置为确定所述最优存储设备的索引是否为无效或者等于所述一个存储设备的索引;并且如果所述最优存储设备的索引为无效或者等于所述一个存储设备的索引,则促使第二计数模块执行动作,否则促使第一设置模块执行动作;第一设置模块,被配置为将所述最优存储设备的所述索引设置为无效,并且将针对所述一个存储设备的已完成的读请求数目设置为0;并促使选择模块执行动作;第二计数模块,被配置为将针对所述一个存储设备的已完成的读请求数目加1;并促使第三判断模块执行动作;第三判断模块,被配置为确定针对所述一个存储设备的已完成的读请求数目是否超过预定阈值;并且如果针对所述一个存储设备的已完成的读请求数目超过所述预定阈值,则促使第二设置模块执行动作,否则,促使所述选择模块执行动作;第二设置模块,被配置为将所述最优存储设备的索引设置为所述一个存储设备的索引,并且将针对所述多个存储设备中的每个存储设备的已完成的读请求数目清零;并且促使所述选择模块执行动作;以及选择模块,被配置为如果所述最优存储设备的索引为无效,则从所述多个存储设备中随机选取目标存储设备,用于服务下一读请求;否则,从所述多个存储设备中选取与所述最优存储设备的索引对应的存储设备作为目标存储设备,用于服务下一读请求。
本公开的第五方面提供了一种装置,该装置包括至少一个处理器;以及至少一个包括计算机程序代码的存储器,其中所述至少一个存储器和所述计算机程序代码被配置为:与所述至少一个处理器一起,促使所述装置执行根据本公开的第一方面或者第二方面所述的任一方法。
根据本公开的实施例的方法或装置,能够缩短I/O响应时间、提高I/O性能,并且/或者在不进行跨节点通信的情况下实现多个存储设备(例如多个磁盘)见的读I/O的负载平衡,同时不降低存储系统的吞吐量。
尽管在附图中通过示例的方式示出了特定的实施例,然而,应当理解,本文的具体实施例的描述不意在将实施例限制为所公开的具体形式。
附图说明
从下文的公开内容和权利要求中,本公开的目的、优点和其他特征将变得更加明显。这里仅出于示例的目的,参考附图来给出优选实施例的非限制性描述,在附图中:
图1示出了示例存储系统的示意性结构图,在该存储系统中可以实施本公开的实施例的方法或装置;
图2示出了根据本公开的实施例的用于控制从存储系统读取数据的方法的流程图;
图3示出了存储系统中的两个磁盘的不同I/O处理状态的示意图;
图4示出了根据本公开的实施例的用于控制从存储系统读取数据的另一方法的流程图;
图5示出了根据本公开的一个实施例的、确定目标存储设备的示例;
图6示出了根据本公开的实施例的装置的示例性结构图;以及
图7示出了根据本公开的实施例的另一装置的示例性结构图。
具体实施方式
在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识到可以在不使用这些具体细节的情况下实现本公开的实施例。因此,本公开不旨在于受限于所示实施例、而是将被赋予与本文描述的原理和特征一致的最宽的范围。
应当理解,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来。而实际上第一元素也能够被称为第二元素,反之亦然。另外还应当理解“包括”,“包含”仅被用来说明所陈述的特征、元素、功能或者部件的存在,然而并不排除存在一个或者多个其他的特征、元素、功能或者部件。
为了便于解释,本文的一些实施例将以RAID 1结构为例来介绍相应的方法或装置,然而,如本领域技术人员可以理解的,本公开的实施例绝不限于应用于RAID 1结构的存储系统,而是可以被应用于任何存在类似问题的存储系统中。
在图1中示出了具有两个处理器节点的存储系统100的示意图,在该存储系统中可以实施本公开的实施例的方法和装置。如图1的示例存储系统100中,具有两个处理器节点,即图左的处理器节点1(标示为PN 101)和图右的处理器2(标示为PN 102)。但是如本领域技术人员能够理解的,本公开的实施例的方法和装置同样能够应用于存在更多个镜像的存储系统中,例如,本公开的实施例能够应用于具有任意数目磁盘的RAID 1存储结构。
如图1所示,RAID组和磁盘对象被镜像映射到存储器的两侧。RAID组具有两个边缘附接到下游的磁盘对象(112、113)。不同处理器节点处的镜像的磁盘对象通过双SCSI磁盘端口(108、109;110、111)访问同一磁盘。这对于RAID组和磁盘提供了稳定的可用性。
在图1的架构中,可以将读请求发送到任一磁盘(112、113)。镜像RAID组的读性能在理论上具有两倍的磁盘性能。然而,磁盘的响应时间变化很快,例如以秒的量级变化。磁盘性能的变化受许多因素的影响。通常,如果磁盘具有较多未完成的I/O待处理(例如,如103-106所示),则其响应时间会较长。对于转轴(spindle)磁盘,顺序的I/O能够获得比随机I/O更好的性能。另外,磁盘封装SCSI端口带宽是和连接到同一端口的其它磁盘共享的。在图1的结构中,如果磁盘链路在一侧出现故障,例如图中示出在左侧出现故障,则到该故障磁盘的所有业务将被重定向到其对等体。这种情况下,由于I/O转发开销,响应时间将显著增加,尤其是对于固态磁盘驱动器(SSD)。
为了更有效地估计磁盘响应时间以更准确的确定用于处理读请求的磁盘,本公开的实施例提出针对每个磁盘统计未完成的读I/O的数目,并据此来估计磁盘的响应时间。由于写I/O需要被发送到RAID 1中的每个磁盘,可以认为写请求的队列深度对所有磁盘的影响是相同的。
以下参考图2来描述根据本公开的实施例的、用于控制从存储系统读取数据的示例方法200。该方法可以在图1的存储系统中被实施,但是不限于在该示例结构中被实施。该存储系统包括多个存储设备(例如多个独立的磁盘),并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中。
如图2所示,该方法包括,在块S201,接收用于从所述存储系统读取数据的读请求;在块S202,根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及在块S203,将所述读请求发送到所述目标存储设备。
在一个实施例中,在块S202中所利用的针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目可以通过以下方式进行更新:当存储系统的多个存储设备中的一个存储设备,例如第一存储设备,接收到新的读请求时,将针对该第一存储设备的未完成的读请求数目加一;以及/或者,当多个存储设备中的一个存储设备,例如第二存储设备,处理完一个读请求时,将针对该第二存储设备的尚未完成的读请求数目减一,并且将针对该第二存储设备的已完成的读请求数目加一。如本领域技术人员能够理解的,该计数更新操作也可以以其它的方式执行。例如,计数的更新也可以以步长2为单位,即,每处理两个I/O读请求后执行一次更新。本公开的实施例并不受限与此。
在一个实施例中,用于统计已完成的读请求数目的时间段可以被预定为该存储系统收到、或者分配两个连续的读请求之间的时间段。例如,在块S203执行后(即在将所述读请求发送到所述目标存储设备后),可以将针对多个存储设备中的每个存储设备的已完成的读请求数目清零。使得已完成的读请求数目表示在一个读请求被分配和下一个读请求被分配之间的时间段内完成的读请求数目。但是,该预定的时间段也可以被以其它方式设置。
在另一实施例中,在块S202中确定用于处理所述读请求的目标存储设备可以包括将多个存储设备中的、未完成的读请求数目最少的一个存储设备确定为该目标存储设备。根据该实施例,能够选择当前读请求负载最轻的存储设备(例如磁盘)来处理新的读请求,有利于读请求的负载平衡。另外,如果多个存储系统最初具有相同的负载,则处理速度较快的磁盘将能够处理完成较多的读请求,并导致其未完成的读请求较少。这种情况下,结果是选择了处理速度较快的磁盘来服务下一读请求。假定磁盘1当前比磁盘0处理更快,则下一到达的读I/O请求将被发送到磁盘1以获得更好的性能。
在图3中示出了存储系统中的两个磁盘的不同I/O处理状态的示意图。其中队列301-306中的每个小方块表示一个未处理的IO请求。情况0可以是初始情况,磁盘0和1的未完成的读请求数目均为0。这是还没有哪个磁盘处理速度更快的信息,因此,可以将到达的读请求发送到任一磁盘。对于情况1和3,每个磁盘的未完成的读请求数目是不同的。根据本公开的实施例,可以将读请求发送到具有较少未完成读请求的磁盘。
在一个实施例中,如果在多个存储设备中有一组(多个)存储设备具有相同的未完成的读请求数目,例如图3中的情况2,其中磁盘0和磁盘1具有相同的未完成的读请求数目(即,队列303和304中的未处理的IO请求数相同),则在块S202中可以进一步根据该一组存储设备的已完成的读请求数目确定目标存储设备。例如,在块S202中可以将多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目超过预定阈值的一个存储设备确定为目标存储设备。在另一实施例中,如果该一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值,则在块S202可以从该一组存储设备中随机选取一个存储设备作为目标存储设备。在又一实施例中,如果未完成的读请求数目最少的一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值,也可以进一步考虑其它参数确定目标存储设备,而不是随机选择。
在一个实施例中,在块S202也可以将多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目最多的一个存储设备确定为所述目标存储设备。在另一实施例中,可以首先根据预定阈值确定目标存储设备,并且在该一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值时,选择已完成的读请求数目最多的一个存储设备为目标存储设备。
根据以上实施例,能够通过一个磁盘的已完成的读请求的数目来预测该磁盘在短期内的速度,同时考虑该磁盘的当前负载,从而选择更适合的磁盘来服务下一读请求。这明显地优于随机选择任一磁盘的传统方法。
在方法200中,还可以考虑可能的不连续读请求的情况。例如,在多个存储设备中的一个存储设备,例如第三存储设备,的未完成的读请求数目为零时,即该第三存储设备已经处理完所有的读I/O请求时,如果没有新的读请求到达该第三存储设备,则出现了不连续读请求的情况。这种情况下,如果没有新的读I/O请求到达该存储设备(例如磁盘),则该存储设备的已完成的读请求数目将不会增加,并且最终可能由于较小的已完成的读请求数目而导致其不会被选为目标存储系统。然而,在这种情况下,较少的已完成的读请求数目已不能表示处理速度,因为其是由不连续的I/O请求导致的。因此,根据已完成的读请求数目做出的目标存储设备的选择可能并不是最优的。考虑到这种情况,在一个实施例中,当多个存储设备中的第三存储设备的未完成的读请求数目为零、并且没有新的读请求到达该第三存储设备时,可以通过将针对该第三存储设备的已完成的读请求数目清零,并且将用于处理读请求的目标存储设备的索引设置为无效来进行计数更新;并且在这种情况下,在块S202中如果发现目标存储设备的索引被设置为无效,则可以从多个存储设备中随机选取一个存储设备作为目标存储设备。
以下参考图4描述用于控制从存储系统读取数据的另一方法400的流程。该方法400同样利用了针对每个磁盘的未完成的读请求数目和已完成的读请求数目来确定用于服务读请求的磁盘。
方法400也可以在如图1所示的存储系统中实施,但是不限于在这种存储结构中实施。而是可以应用于任何存储系统,该存储系统包括多个存储设备,并且数据的备份被存储在该多个存储设备中的每个存储设备中。
如图4所示,方法400包括初始化操作,其中通过将最优存储设备的索引设定为无效、并且将针对所述多个存储设备中的每个存储设备的未完成的读请求数目和已完成的读请求数目设置为0来进行初始化,并且方法400还包括以下步骤:
步骤1:在多个存储设备中的一个存储设备的读请求处理完成时,将针对所述一个存储设备的未完成的读请求数目减1;并进入步骤2;
步骤2:确定针对所述一个存储设备的未完成的读请求数目是否为0,在所述未完成的读请求数目为0时,进入步骤3;否则进入步骤5;
步骤3:确定所述最优存储设备的索引是否为无效或者等于所述一个存储设备的索引;并且如果所述最优存储设备的索引为无效或者等于所述一个存储设备的索引,则进入步骤5,否则进入步骤4;
步骤4:将所述最优存储设备的所述索引设置为无效,并且将针对所述一个存储设备的已完成的读请求数目设置为0;并进入步骤8;
步骤5:将针对所述一个存储设备的已完成的读请求数目加1;并进入步骤6;
步骤6:确定针对所述一个存储设备的已完成的读请求数目是否超过预定阈值N;并且如果针对所述一个存储设备的已完成的读请求数目超过所述预定阈值,则进入步骤7,否则,进入步骤8;
步骤7:将所述最优存储设备的索引设置为所述一个存储设备的索引,并且将针对所述多个模块中的每个存储设备的已完成的读请求数目清零;进入步骤8;
步骤8:如果所述最优存储设备的索引为无效,则从所述多个存储设备中随机选取目标存储设备,用于服务下一读请求;否则,从所述多个存储设备中选取与所述最优存储设备的索引对应的存储设备作为目标存储设备,用于服务下一读请求。
在一个实施例中,在一组存储设备具有相同的未完成的读请求数目时,应用方法400来从这一组存储设备中选取目标存储设备。而对于具有不同的未完成的读请求数目的情况,可以根据未完成的读请求数目来确定目标存储设备。
在另一个实施例中,方法400中的一些步骤可以被省略、或者被其他操作所替换。例如,在不考虑不连续的I/O请求的情况下,可以省略步骤2、3和4,从步骤1直接进入步骤5。在另一实施例中,步骤6中的判断也可以由比较操作来替换,例如,可以比较各个存储设备的已完成的读I/O数目,并且在步骤7将最优存储设备的索引设置为具有最大已完成的读I/O数目的存储设备的索引。
在图5中给出了采用本公开的实施例的方法选择目标存储设备的示例0到示例9。在这些示例中,假定采用SSD RAID 1存储系统。如果SSD中的磁盘1进入单回路故障,则响应时间将几乎加倍。如果磁盘0的响应时间是T,则磁盘1的响应时间是2T。假定RAID组仅在当前节点具有读业务,在对等节点没有任何业务。
如图5所示,示例0中,用户依次向RAID组发出9个读I/O请求,每个I/O间隔是T/2。初始化阶段,步骤6中的阈值N被设置为2,最优存储设备的索引K被设置为无效。
在示例1中,两个盘0和1均没有未完成的I/O。因此I/O 0可以被随机地发送到任何磁盘。在示例1中,该I/O 0被发送到磁盘0。
在示例2中,磁盘0具有一个未完成的读请求,磁盘1没有未完成的读请求,因此,根据本公开的实施例的方法,I/O 1被发送到磁盘1。
在示例3中,磁盘0中的I/O 0被处理完成并返回,磁盘0的已完成的读请求数目为1,未完成的读请求数目为0,磁盘1的未完成的读请求数目为1。根据本公开的实施例的方法,I/O 2被发送到磁盘0。
在示例4中,两个磁盘均具有1个未完成的I/O。下一I/O 3可以被发送到任一磁盘,因为K被设置为无效。在该示例中,I/O 3被发送到磁盘0。
在示例5中,I/O 2在磁盘0被处理完成,同时两个磁盘未完成的读请求数目系统,磁盘0的已完成的读请求数目达到阈值N=2。因此根据本公开的实施例的方法,下一I/O 4被发送到磁盘0,K=0。
在示例6中,I/O 1和I/O 3均被处理完成,磁盘1没有未完成的I/O请求,下一I/O 5被发送到磁盘1。
在示例7中,I/O 4的处理完成,根据本公开的实施例的方法,将下一I/O 6发送到磁盘0,并且K被更新为0。
在示例8中,在I/O 7到达时,两个磁盘的未完成的I/O数目均为1,该I/O 7被发送到K对应的磁盘0。
在示例9中,磁盘0处理完成I/O 6,两个磁盘均具有相同的未完成的I/O数目,同样将I/O 8发送给K对应的磁盘0。
由以上示例可见,根据本公开的实施例的方法,大部分的I/O被发送到速度快的磁盘0。这使得存储系统的响应时间缩短,性能提高。
以下参考附图6描述用于控制从存储系统读取数据的装置600的结构。装置600所适用的存储系统包括多个存储设备,并且数据的备份被存储在所述多个存储设备中的每个存储设备中。例如该存储系统可以是(但是并不限于)如图1所示的存储系统100。装置600可以执行参考图2所述的方法200,但是不限于执行该方法200。同样该方法200可以由装置600执行,但是不限于由装置600执行。例如方法200的至少一些操作可以由其它的装置来执行。
如图6所示,装置600包括计数模块601,被配置为针对所述多个存储设备中的每个存储设备,记录当前尚未完成的读请求数目、以及在预定时间段内已完成的读请求数目;读请求接收模块602,被配置为接收用于从所述存储系统读取数据的读请求;确定模块603,被配置为根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及读请求分配模块604,被配置为将所述读请求发送到所述目标存储设备。
在一个实施例中,模块602-604可以被配置为执行参考图2所述的方法200的步骤S201-S203。因此,参考方法200进行的相关描述在此同样适用。
在一个实施例中计数模块601可以进一步被配置为在所述多个存储设备中的第一存储设备接收到新的读请求时,将针对所述第一存储设备的尚未完成的读请求数目加一;以及在所述多个存储设备中的第二存储设备处理完一个读请求时,将针对所述第二存储设备的尚未完成的读请求数目减一,并且将针对所述第二存储设备的已完成的读请求数目加一。
在另一实施例中,计数模块601可以进一步被配置为在将读请求发送到目标存储设备后,将针对多个存储设备中的每个存储设备的已完成的读请求数目清零。
在一个实施例中,确定模块603可以进一步被配置为将所述多个存储设备中的、未完成的读请求数目最少的一个存储设备确定为所述目标存储设备。在另一实施例中,该确定模块可以进一步被配置为将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目超过预定阈值的一个存储设备确定为所述目标存储设备,并且在所述一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值时,从所述一组存储设备中随机选取一个存储设备作为所述目标存储设备。
替代地,在一个实施例中,确定模块还可以被配置为将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目最多的一个存储设备确定为目标存储设备。
考虑到不连续的读请求的情况,在一个实施例中,计数模块601可以进一步被配置为:在针对所述多个存储设备中的第三存储设备的未完成的读请求数目为零、但没有新的读请求到达所述第三存储设备时,将针对所述第三存储设备的已完成的读请求数目清零,并且将用于处理所述读请求的目标存储设备的索引设置为无效;并且确定模块603可以进一步被配置为:在所述目标存储设备的索引被设置为无效时,从所述多个存储设备中随机选取一个存储设备作为所述目标存储设备。这使得在根据已完成的读请求数目不能够得到最优目标存储设备时,能够回退到随机选择,保证负载的平衡。
在图7中示出了用于控制从存储系统读取数据的另一装置700的示例结构。装置700同样适用于包括多个存储设备的存储系统,并且其中数据的备份被存储在所述多个存储设备中的每个存储设备中。该存储系统可以是如图1所示的存储系统100,例如可以是RAID1。但是本公开的实施例不限于这种存储结构。
装置700可以执行参考图4所示的方法400,但是不限于用于执行该方法。同样,方法400也不限于由装置700来执行。方法400的至少以下步骤可以由其它的装置来执行。
如图7所示,装置700包括初始化模块710,被配置为通过将最优存储设备的索引设定为无效、并且将针对所述多个存储设备中的每个存储设备的未完成的读请求数目和已完成的读请求数目设置为0来进行初始化,以及以下模块:
第一计数模块701,被配置为在所述多个存储设备中的一个存储设备的读请求处理完成时,将针对所述一个存储设备的未完成的读请求数目减1;并将更新后的所述未完成的读请求数目发送给第一判断模块702;
第一判断模块702,被配置为确定针对所述一个存储设备的未完成的读请求数目是否为0,在所述未完成的读请求数目为0时,促使第二判断模块703执行动作,否则促使第二计数模块705执行动作;
第二判断模块703,被配置为确定所述最优存储设备的索引是否为无效或者等于所述一个存储设备的索引;并且如果所述最优存储设备的索引为无效或者等于所述一个存储设备的索引,则促使第二计数模块705执行动作,否则促使第一设置模块704执行动作;
第一设置模块704,被配置为将所述最优存储设备的所述索引设置为无效,并且将针对所述一个存储设备的已完成的读请求数目设置为0;并促使选择模块708执行动作;
第二计数模块705,被配置为将针对所述一个存储设备的已完成的读请求数目加1;并促使第三判断模块706执行动作;
第三判断模块706,被配置为确定针对所述一个存储设备的已完成的读请求数目是否超过预定阈值;并且如果针对所述一个存储设备的已完成的读请求数目超过所述预定阈值,则促使第二设置模块707执行动作,否则,促使所述选择模块708执行动作;
第二设置模块707,被配置为将所述最优存储设备的索引设置为所述一个存储设备的索引,并且将针对所述多个存储设备中的每个存储设备的已完成的读请求数目清零;并且促使所述选择模块708执行动作;
选择模块708,被配置为如果所述最优存储设备的索引为无效,则从所述多个存储设备中随机选取目标存储设备,用于服务下一读请求;否则,从所述多个存储设备中选取与所述最优存储设备的索引对应的存储设备作为目标存储设备,用于服务下一读请求。
在一个实施例中,模块701-708可以被配置为执行参考图4所述的方法400的步骤1到步骤8。因此,参考方法400进行的相关描述在此同样适用,并不在赘述。
如本领域技术人员能够理解的,装置600-700分别还可以包括图6-7中未示出的其它单元,并且在一些实施例中,图6-7中的某些单元可以被省略。
本公开的实施例所提出的方法和装置的优点包括以下的至少一项:
-缩短I/O响应时间、提高I/O性能,
-在不进行跨节点通信的情况下实现多个存储设备(例如多个磁盘)间的读I/O的负载平衡,同时不降低存储系统的吞吐量。
本领域技术人员将容易地认识到,各种上述各种方法中的块或者步骤可以通过编程的计算机来执行。在本公开中,一些实施例还意在涵盖程序存储系统,例如,数字数据存储介质,这是机器或计算机可读的并且编码机器可执行或计算机可执行的指令程序,其中,所述指令执行上述方法的一些或所有步骤。程序存储系统可以是,例如,数字存储器、诸如磁盘和磁带的磁存储介质、硬盘驱动器或光学可读数字数据存储介质。该实施例还意在涵盖编程为执行所述上述方法的步骤的计算机。一些实施例还意在涵盖一种装置,该装置包括至少一个处理器;以及至少一个包括计算机程序代码的存储器,其中所述至少一个存储器和所述计算机程序代码被配置为:与所述至少一个处理器一起,促使所述装置执行方法200或者400。
在附图中示出的装置的各种元件的功能,可以通过使用软件、专用硬件以及与适当软件相关联的能够执行软件的硬件、或者固件、或者其结合来提供。当由处理器提供时,该功能可以由单个专用处理器、由单个共享处理器或由多个单独的处理器来提供。此外,术语“处理器”可以包括但不限于,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA),用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储装置。还可以包括其他常规和/或定制的硬件。
本领域技术人员应当理解,说明书和附图仅仅说明本公开的实施例的原理。因此,应当理解,本领域的技术人员将能够设计出各种布置,虽然这里没有明确地描述或示出,但是该布置体现本公开的实施例的原理并且被包括在本公开的实施例的精神和范围内。此外,这里阐述的所有示例主要旨在明确仅用于教学目的,以帮助读者理解本公开的实施例的原理和发明人贡献的用于促进本领域的概念,并且应被解释为不限于这些具体阐释的示例和条件。而且,这里阐述本公开的实施例的原理、方面和实施例的所有阐述及其具体示例也意在包含其等同物。
Claims (13)
1.一种用于控制从存储系统读取数据的方法,所述存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中,所述方法包括:
接收用于从所述存储系统读取数据的读请求;
根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及
将所述读请求发送到所述目标存储设备,
其中针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目通过以下方式被更新:
在针对所述多个存储设备中的第三存储设备的未完成的读请求数目为零、但没有新的读请求到达所述第三存储设备时,将针对所述第三存储设备的已完成的读请求数目清零,并且将用于处理所述读请求的目标存储设备的索引设置为无效;并且
其中根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备包括:
响应于所述目标存储设备的索引被设置为无效,从所述多个存储设备中随机选取一个存储设备作为所述目标存储设备。
2.根据权利要求1所述的方法,其中,针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目还通过以下方式被更新:
在所述多个存储设备中的第一存储设备接收到新的读请求时,将针对所述第一存储设备的未完成的读请求数目加一;以及
在所述多个存储设备中的第二存储设备处理完一个读请求时,将针对所述第二存储设备的未完成的读请求数目减一,并且将针对所述第二存储设备的已完成的读请求数目加一。
3.根据权利要求1所述的方法,进一步包括:
在将所述读请求发送到所述目标存储设备后,将针对所述多个存储设备中的每个存储设备的已完成的读请求数目清零。
4.根据权利要求1所述的方法,其中根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备还包括:
将所述多个存储设备中的、未完成的读请求数目最少的一个存储设备确定为所述目标存储设备。
5.根据权利要求4所述的方法,其中将所述多个存储设备中的、未完成的读请求数目最少的存储设备确定为所述目标存储设备进一步包括:
将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目超过预定阈值的一个存储设备确定为所述目标存储设备,并且
在所述一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值时,从所述一组存储设备中随机选取一个存储设备作为所述目标存储设备。
6.根据权利要求4所述的方法,其中将所述多个存储设备中的、未完成的读请求数目最少的存储设备确定为所述目标存储设备进一步包括:
将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目最多的一个存储设备确定为所述目标存储设备。
7.一种用于控制从存储系统读取数据的装置,所述存储系统包括多个存储设备,并且所述数据的备份被存储在所述多个存储设备中的每个存储设备中,所述装置包括:
计数模块,被配置为针对所述多个存储设备中的每个存储设备,记录当前尚未完成的读请求数目、以及在预定时间段内已完成的读请求数目;
读请求接收模块,被配置为接收用于从所述存储系统读取数据的读请求;
确定模块,被配置为根据针对每个存储设备所记录的未完成的读请求数目和已完成的读请求数目,从所述多个存储设备中确定用于处理所述读请求的目标存储设备;以及
读请求分配模块,被配置为将所述读请求发送到所述目标存储设备,
其中所述计数模块进一步被配置为:在针对所述多个存储设备中的第三存储设备的未完成的读请求数目为零、但没有新的读请求到达所述第三存储设备时,将针对所述第三存储设备的已完成的读请求数目清零,并且将用于处理所述读请求的目标存储设备的索引设置为无效;并且
其中所述确定模块进一步被配置为:响应于所述目标存储设备的索引被设置为无效,从所述多个存储设备中随机选取一个存储设备作为所述目标存储设备。
8.根据权利要求7所述的装置,其中所述计数模块进一步被配置为:
在所述多个存储设备中的第一存储设备接收到新的读请求时,将针对所述第一存储设备的尚未完成的读请求数目加一;以及
在所述多个存储设备中的第二存储设备处理完一个读请求时,将针对所述第二存储设备的尚未完成的读请求数目减一,并且将针对所述第二存储设备的已完成的读请求数目加一。
9.根据权利要求7所述的装置,其中所述计数模块进一步被配置为:
在将所述读请求发送到所述目标存储设备后,将针对所述多个存储设备中的每个存储设备的已完成的读请求数目清零。
10.根据权利要求7所述的装置,其中所述确定模块进一步被配置为:
将所述多个存储设备中的、未完成的读请求数目最少的一个存储设备确定为所述目标存储设备。
11.根据权利要求10所述的装置,其中所述确定模块进一步被配置为:
将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目超过预定阈值的一个存储设备确定为所述目标存储设备,并且
在所述一组存储设备中每个存储设备的已完成的读请求数目均未超过预定阈值时,从所述一组存储设备中随机选取一个存储设备作为所述目标存储设备。
12.根据权利要求10所述的装置,其中所述确定模块进一步被配置为:
将所述多个存储设备中的、未完成的读请求数目最少的一组存储设备中、已完成的读请求数目最多的一个存储设备确定为所述目标存储设备。
13.一种用于控制从存储系统读取数据的装置,所述装置包括至少一个处理器;以及包括计算机程序代码的至少一个存储器,其中所述至少一个存储器和所述计算机程序代码被配置为:与所述至少一个处理器一起,促使所述装置执行根据权利要求1-6中任一权利要求所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981602.4A CN106909312B (zh) | 2015-12-23 | 2015-12-23 | 用于控制从存储系统读取数据的方法和装置 |
US15/382,788 US10296223B2 (en) | 2015-12-23 | 2016-12-19 | Methods and apparatus for controlling data reading from a storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981602.4A CN106909312B (zh) | 2015-12-23 | 2015-12-23 | 用于控制从存储系统读取数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106909312A CN106909312A (zh) | 2017-06-30 |
CN106909312B true CN106909312B (zh) | 2020-03-20 |
Family
ID=59086612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510981602.4A Active CN106909312B (zh) | 2015-12-23 | 2015-12-23 | 用于控制从存储系统读取数据的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10296223B2 (zh) |
CN (1) | CN106909312B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870731B (zh) | 2016-09-23 | 2021-07-27 | 伊姆西Ip控股有限责任公司 | 独立盘冗余阵列系统的管理方法和电子设备 |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
CN110413209B (zh) * | 2018-04-28 | 2023-05-30 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法和设备 |
CN108628551B (zh) * | 2018-05-04 | 2021-06-15 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN110737393B (zh) * | 2018-07-20 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 数据读取方法、设备和计算机程序产品 |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11625481B2 (en) * | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11720714B2 (en) * | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
CN112835967B (zh) * | 2019-11-25 | 2023-07-21 | 浙江宇视科技有限公司 | 基于分布式存储系统的数据处理方法、装置、设备和介质 |
CN111459261A (zh) * | 2020-04-03 | 2020-07-28 | 北京云宽志业网络技术有限公司 | 磁盘唤醒方法、装置、电子设备及存储介质 |
US20230315691A1 (en) * | 2022-03-30 | 2023-10-05 | Netapp, Inc. | Read amplification reduction in a virtual storage system when compression is enabled for a zoned checksum scheme |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014153A (zh) * | 2010-10-19 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储系统及其数据存储方法 |
CN103135943A (zh) * | 2013-02-21 | 2013-06-05 | 浪潮电子信息产业股份有限公司 | 一种多控存储系统自适应io调度方法 |
CN103138995A (zh) * | 2011-11-24 | 2013-06-05 | 中兴通讯股份有限公司 | 服务器性能测试的方法和装置 |
US8838931B1 (en) * | 2012-03-30 | 2014-09-16 | Emc Corporation | Techniques for automated discovery and performing storage optimizations on a component external to a data storage system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309200A (ja) * | 1991-04-10 | 1994-11-04 | Internatl Business Mach Corp <Ibm> | ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム |
GB2323945B (en) * | 1997-04-04 | 2002-02-27 | Sony Uk Ltd | Automated job scheduling in a data storage and/or retrieval system |
US5937428A (en) * | 1997-08-06 | 1999-08-10 | Lsi Logic Corporation | Method for host-based I/O workload balancing on redundant array controllers |
US9141295B2 (en) * | 2010-05-06 | 2015-09-22 | International Business Machines Corporation | Load balancing of data reads in storage environments |
US9141508B2 (en) * | 2010-12-21 | 2015-09-22 | Oracle International Corporation | Assigning read requests based on busyness of devices |
US8868797B1 (en) * | 2012-03-30 | 2014-10-21 | Emc Corporation | Techniques for automated discovery of storage devices and their performance characteristics |
US20130227180A1 (en) * | 2012-02-24 | 2013-08-29 | Pradeep Bisht | Method for input/output load balancing using varied performing storage devices |
CN104780190A (zh) * | 2014-01-13 | 2015-07-15 | 北京兆维电子(集团)有限责任公司 | 数据读写控制方法及装置 |
-
2015
- 2015-12-23 CN CN201510981602.4A patent/CN106909312B/zh active Active
-
2016
- 2016-12-19 US US15/382,788 patent/US10296223B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014153A (zh) * | 2010-10-19 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储系统及其数据存储方法 |
CN103138995A (zh) * | 2011-11-24 | 2013-06-05 | 中兴通讯股份有限公司 | 服务器性能测试的方法和装置 |
US8838931B1 (en) * | 2012-03-30 | 2014-09-16 | Emc Corporation | Techniques for automated discovery and performing storage optimizations on a component external to a data storage system |
CN103135943A (zh) * | 2013-02-21 | 2013-06-05 | 浪潮电子信息产业股份有限公司 | 一种多控存储系统自适应io调度方法 |
Non-Patent Citations (1)
Title |
---|
分布仿真系统二次调度负载均衡策略研究;沈萍萍,陈珂,张燕,顾才东;《计算机仿真》;20110930;第1-3节 * |
Also Published As
Publication number | Publication date |
---|---|
US20170185296A1 (en) | 2017-06-29 |
US10296223B2 (en) | 2019-05-21 |
CN106909312A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106909312B (zh) | 用于控制从存储系统读取数据的方法和装置 | |
US8898385B2 (en) | Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment | |
CN105573839B (zh) | 用于端口选择的基于成本的负载平衡的方法和装置 | |
US10146585B2 (en) | Ensuring the fair utilization of system resources using workload based, time-independent scheduling | |
US10001951B1 (en) | Path selection in a data storage system | |
US20210133110A1 (en) | Migrating data between block pools in a storage system | |
US9904474B2 (en) | Control device and storage system | |
US20140115252A1 (en) | Block storage-based data processing methods, apparatus, and systems | |
KR20140007333A (ko) | 저장소 환경에서의 재구성 i/o 판독 동작들의 스케줄링 | |
US20170351426A1 (en) | Dynamic optimization of raid read operations | |
KR20140045286A (ko) | 저장소 환경에서의 i/o 기록들의 스케줄링 | |
US9747040B1 (en) | Method and system for machine learning for write command selection based on technology feedback | |
US20200394112A1 (en) | Reducing incidents of data loss in raid arrays of differing raid levels | |
US9880788B2 (en) | Modeling the effects of switching data storage resources through data storage pool tier performance capacity and demand gap analysis | |
US20130111153A1 (en) | Distributed storage system, apparatus and method for managing a distributed storage in consideration of latency elements | |
US10223221B2 (en) | Enclosure-encapsulated RAID rebuild | |
US11797448B2 (en) | Using multi-tiered cache to satisfy input/output requests | |
US9798488B2 (en) | System and method for transferring traditional raid to distributed array | |
US10983836B2 (en) | Transaction optimization during periods of peak activity | |
US20200394113A1 (en) | Reducing incidents of data loss in raid arrays having the same raid level | |
US20160098219A1 (en) | Storage control device and storage system | |
US11435955B1 (en) | System and method for offloading copy processing across non-volatile memory express (NVMe) namespaces | |
US10133640B2 (en) | Storage apparatus and storage system | |
US20110185137A1 (en) | Concurrent copy of system configuration global metadata | |
US20170109094A1 (en) | I/o statistic based depopulation of storage ranks |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200224 Address after: Massachusetts, USA Applicant after: EMC IP Holding Company LLC Address before: Massachusetts, USA Applicant before: EMC Corp. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |