CN116301568A - 一种数据访问方法、装置以及设备 - Google Patents
一种数据访问方法、装置以及设备 Download PDFInfo
- Publication number
- CN116301568A CN116301568A CN202210151597.4A CN202210151597A CN116301568A CN 116301568 A CN116301568 A CN 116301568A CN 202210151597 A CN202210151597 A CN 202210151597A CN 116301568 A CN116301568 A CN 116301568A
- Authority
- CN
- China
- Prior art keywords
- data access
- access request
- hard disk
- priority
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 39
- 238000012544 monitoring process Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims 1
- 235000019580 granularity Nutrition 0.000 description 25
- 238000007726 management method Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 8
- 239000007787 solid Substances 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- FFNMBRCFFADNAO-UHFFFAOYSA-N pirenzepine hydrochloride Chemical compound [H+].[H+].[Cl-].[Cl-].C1CN(C)CCN1CC(=O)N1C2=NC=CC=C2NC(=O)C2=CC=CC=C21 FFNMBRCFFADNAO-UHFFFAOYSA-N 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
-
- 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/0653—Monitoring storage devices or 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据访问方法、装置以及设备,本申请中,存储设备接收由存储系统之外的设备发送的设置请求,该设置请求用于设置数据访问请求的处理优先级,处理优先级描述了对数据访问请求的处理次序。存储设备基于设置请求配置优先级列表。当存储设备接收到数据访问请求时,存储设备按照优先级列表处理接收到的数据访问请求。存储设备内部保存在优先级列表,在处理数据访问请求时按照该优先级列表依次处理各个数据访问请求,能够准确的控制数据访问请求的处理顺序。
Description
相关申请的交叉引用:
本申请要求在2021年12月21日提交中华人民共和国知识产权局、申请号为202111574333.1、发明名称为“访问存储设备的方法及存储系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及存储技术领域,尤其涉及一种数据访问方法、装置以及设备。
背景技术
目前,为了保证存储系统仍能够高效的处理来自用户的数据访问请求,保证一些重要用户发起的数据访问请求可以被优先处理。用户通过客户端设备发送的数据访问请求在到达存储系统之前,会被调整顺序。这样,一些由重要用户发起的数据访问请求能够优先到达存储系统,能够优先被存储系统处理。
但在实际场景中,存储系统在不同时间所需承担的负载不同,这里的负载可以指示存储设备所需处理的数据访问请求。尤其是在存储系统负载较大,需要处理大量的数据访问请求时,仅是通过调整数据访问请求到达存储系统的顺序,并不能完全保证这些数据访问请求的处理效率。往往由于存储系统负载较大,即便由重要用户发起的数据访问请求优先到达了存储系统,在存储系统内部,由于存储系统内部的无空闲的节点,使得这些数据访问请求也无法及时被处理。
发明内容
本申请提供一种数据访问方法、装置以及设备,用以保证准确控制处理数据访问请求的处理顺序。
第一方面,本申请实施例提供了一种数据访问方法,所述方法应用于存储系统中的存储设备,在该方法中,存储设备可以接收设置请求,该设置请求用于设置数据访问请求的处理优先级(在本申请实施例中处理优先级可以简称为优先级),处理优先级描述了对数据访问请求的处理次序。该设置请求可以时由存储系统之外的设备发送的。存储设备在接收到设置请求之后,可以基于设置请求配置优先级列表,优先级列表记录了不同数据访问请求的处理优先级。后续,当存储设备接收到数据访问请求时,存储设备可以按照优先级列表处理接收到的数据访问请求。
通过上述方法,存储设备内部保存在优先级列表,在处理数据访问请求时,能够严格的按照该优先级列表依次处理各个数据访问请求,相比于仅是依靠存储系统之外的设备调整数据访问请求到达存储设备的次序的方式,该方式的准确程度更好,能够准确的控制数据访问请求的处理顺序。
在一种可能的实施方式中,处理优先级可以基于一个或多个粒度设置,本申请实施例并不限定处理优先级的设置粒度。该设置粒度包括但不限于:发起数据访问请求的用户、发起数据访问请求的应用程序、发起数据访问请求的客户端设备。上述设定粒度仅是举例,在实际应用中,可以根据具体场景选择设置粒度,进而设置处理优先级。
通过上述方法,处理优先级的设置粒度较为多样,可以保证处理优先级的设置能够适用于不同的数据访问场景。
在一种可能的实施方式中,存储设备接收到数据访问请求中携带有标识信息,标识信息包括下列的部分或全部:应用程序的标识信息、用户的标识信息、客户端设备的标识信息。该标识信息中携带的信息与处理优先级的设置粒度有关。
通过上述方法,数据访问请求携带有标识信息,能够在一定程度上标识该数据访问请求的优先级。
在一种可能的实施方式中,存储设备在按照处理优先级处理接收到的数据访问请求时,可以解析接收到的数据访问请求,提取数据访问请求中的标识信息。存储设备在获取该标识信息后,可以根据该标识信息从优先级列表中确定数据访问请求的处理优先级。存储设备根据该处理优先级调整数据访问请求的处理次序。这样,存储设备可以按照处理次序依次处理数据访问请求。
通过上述方法,由于数据访问请求中携带了标识信息,使得存储设备能够准确的确定出数据访问请求的处理优先级,进一步保证存储设备可以准确的按照处理优先级来处理数据访问请求。
在一种可能的实施方式中,存储设备包括多个硬盘,存储设备按照处理次序依次处理数据访问请求时,存储设备可以监控多个硬盘的状态。存储设备可以实时监控该多个硬盘的状态,根据多个硬盘的状态为数据访问请求选择目标硬盘。存储设备可以向多个硬盘分别发送监控命令,监控命令用于请求硬盘的状态。硬盘在接收到该监控命令后,可以向存储设备反馈硬盘的状态。存储设备在获取多个硬盘反馈的所述多个硬盘的状态后,根据多个硬盘的状态为数据访问请求选择目标硬盘。之后,存储设备将基于数据访问请求产生的命令放置在目标硬盘的提交队列中。
通过上述方法,存储设备可以根据硬盘的状态,对数据访问请求选择目标硬盘,保证该数据访问请求可以被高效处理。
在一种可能的实施方式中,存储设备在根据多个硬盘的状态为数据访问请求选择目标硬盘时,可以根据多个硬盘的状态从中选择满足状态条件的目标硬盘,状态条件包括下列的部分或全部:硬盘的带宽大于带宽阈值、硬盘的时延小于时延阈值、硬盘正常。
通过上述方法,基于状态条件选择的目标硬盘的性能更佳,保证了数据访问请求的处理效率。
在一种可能的实施方式中,存储设备在将基于数据访问请求产生的命令放置在目标硬盘的提交队列中,可以将基于数据访问请求产生的命令插入到目标硬盘的提交队列靠前的位置,如排序在前N(N为正整数)的位置处或队首的位置。也可以将基于数据访问请求产生的命令放置在目标硬盘的多个提交队列中优先级大于阈值的提交队列中。
通过上述方法,存储设备在将基于数据访问请求产生的命令放置在目标硬盘的提交队列时,会尽量保证硬盘能够尽快从提交队列中获取该基于数据访问请求产生的命令,以保证该数据访问请求能够尽快被处理。
在一种可能的实施方式中,存储设备还指示目标硬盘暂停目标硬盘中的后台操作。这样硬盘可以集中处理提交队列中的命令,保证数据访问请求的处理效率。
在一种可能的实施方式中,存储设备将基于数据访问请求产生的命令放置在目标硬盘的提交队列时,若目标硬盘处于忙碌状态,存储设备可以将基于数据访问请求产生的命令放置在目标硬盘的备份盘的提交队列中,目标硬盘的备份盘是指与目标硬盘保存有相同数据的硬盘。
通过上述方法,由备份盘代替目标硬盘处理该基于数据访问请求产生的命令,在一定程度上,能够保证该基于数据访问请求产生的命令被及时处理,提高数据访问请求的处理效率。
在一种可能的实施方式中,存储设备基于数据访问请求产生的命令中可以包括优先级标识,优先级标识用于指示命令的优先级。当目标硬盘从提交队列中获取该命令后,可以识别该优先级标识,调整硬盘内部各个命令的处理顺序。硬盘内部也能够进行对命令的处理顺序进行调整,进一步保证了该命令的处理效率。
第二方面,本申请实施例还提供了一种数据访问权装置,该数据访问权装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括接收模块、处理模块,可选的,还包括发送模块、指示模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第三方面,本申请实施例还提供了一种计算设备,该计算设备具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述计算设备的结构中包括处理器、网卡和存储器,所述处理器或网卡被配置为支持所述计算设备执行上述第一方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述计算设备必要的程序指令和数据。所述计算设备的结构中还包括通信接口,用于与其他设备进行通信,如可以接收设置请求、数据访问请求,发送基于数据访问请求产生的命令或向硬盘发送指示等。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
第五方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
第六方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
附图说明
图1为本申请提供的一种硬盘的提交队列以及完成队列的结构示意图;
图2为本申请提供的一种硬盘的多对提交队列以及完成队列系统的结构示意图;
图3为本申请提供的一种数据访问系统的结构示意图;
图4为本申请提供的一种数据访问方法的示意图;
图5为本申请提供的一种优先级列表的示意图;
图6为本申请提供的一种数据访问装置的结构示意图。
具体实施方式
本申请实施例提供了一种数据访问方法、装置以及设备,在对本申请实施例提供的一种数据访问方法、系统以及设备介绍之前,先对本申请实施例所涉及的存储设备与硬盘之间的交互方式进行简单说明。
这里以存储设备中的硬盘为支持NVMe协议的固态硬盘为例对存储设备与硬盘之间的交互方式进行说明。其中,支持NVMe协议的固态硬盘可以简称为NVMe SSD。
在NVMe协议中,存储设备和SSD之间基于一系列成对的提交队列、完成队列实现交互。这些队列由运行在存储设备的驱动程序创建,这些队列在驱动程序和NVMe SSD之间共享。队列本身既可以位于存储设备的共享内存中,也可以位于NVMe SSD的内存中。驱动程序在配置提交队列和完成队列后,驱动程序和NVMe SSD之间可以进行交互。参见图1,交互步骤如下:
步骤1,驱动程序将一条新的命令放置在提交队列上。该命令可以为用于请求写入数据的数据写入命令,也可以为用于请求读取数据的数据读取命令。
步骤2,驱动程序通过将指向该提交队列的队尾的尾部指针写入门铃寄存器来通知NVMe SSD中的NVMe控制器有新命令待执行。
步骤3,NVMe控制器从提交队列中获取该命令。NVMe控制器从提交队列获取命令时一般是从提交队列的队首开始提取。
步骤4,NVMe控制器处理该命令。如NVMe控制器根据该命令将数据写入到SSD中的闪存中,或根据该命令从SSD内的闪存中读取数据。
步骤5,NVMe控制器在完成该命令后,将一个条目放入关联的完成队列中。若该命令用于请求写入数据,放入到完成队列的条目会指示数据写入成功或失败。若该命令用于请求读取数据,放入到完成队列的条目会携带读取的数据。
步骤6,NVMe控制器采用中断机制提示驱动程序,已完成该命令。
步骤7,驱动程序从完成队列中提取条目;
步骤8,驱动程序通过将完成队列更新后的头部指针写入门铃寄存器,将其发送给NVMe控制器。
上述步骤中提及的提交队列以及完成队列是成对存在的,也即提交队列和完成队列是一一关联的。提交队列以及完成队列用于实现数据读取以及写入。除了提交队列以及完成队列,还存在一组管理队列,该组管理队列用于传递控制命令,以完成一些管理操作,如创建队列、删除队列、更新固件等。
NVMe协议最多允许65535个单独的队列,每个队列最多可以有65535个条目。实际应用中,队列的数量可以基于存储设备的系统配置和预期负载来决定的。也就是说,允许在存储设备中存在多个队列对,一个队列对中包括一个提交队列和一个完成队列。驱动程序可以为不同的队列对可以设置不同的优先级。这样,NVMe控制器可以按照提交队列的优先级从各个提交队列中提取命令,处理命令。图2是一种队列对机制的示意图,如图2所示,在存储设备中可以创建多个队列对,每个队列对中的提交队列和完成队列之间具有一一对应的关系。
如图3所示为本申请实施例提供的一种数据访问系统架构示意图,该数据访问系统包括应用服务器100以及存储设备200。
应用服务器100与存储设备200之间可以进行数据交互。在本申请实施例中,应用服务器100与存储设备200之间的交互可以分为两种。一种是应用服务器100设置存储设备200数据访问请求的优先级时所进行的交互,另一种为应用服务器100在访问存储设备200中存储的数据时所进行的交互。在本申请实施例中数据访问请求的优先级是指存储设备200处理数据访问请求的先后顺序,优先级高的数据访问请求需要优先处理,优先级低的数据访问请求需要延后处理或按照正常顺序处理。
从功能上,应用服务器100能够通过向存储设备200发送设置请求,以指示存储设备200设置数据访问请求的优先级;还能够在需要访问存储设备200中的数据,向存储设备200的发送数据访问请求。该数据访问请求包括用于请求写入数据的数据写入请求,以及用于请求读取数据的数据读取请求。
存储设备200可以在应用服务器100的指示下设置数据访问请求的优先级,并基于该优先级处理数据访问请求。
从部署位置以及硬件结构上,该应用服务器100可以是部署在靠近用户侧的运行有客户端软件等应用程序的设备,在这种情况下,应用服务器100也可以称为客户端设备300。用户可以根据自身需求或当前场景通过应用服务器100上运行的应用程序,触发应用服务器100生成数据访问请求或设置请求。
该应用服务器100也可以为介于客户端设备300以及存储设备200之间的中间设备,该中间设备能够转发来自客户端设备300的用于访问存储设备200中数据的数据访问请求,还可以在用户的触发下生成并发送数据访问请求或设置请求。图3中仅示例性的展示应用服务器100为中间设备的情况。
该应用服务器100可以是物理机,也可以是虚拟机。物机包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。
在本申请实施例中,存储设备200是一种既具有计算能力又具有存储能力的设备,存储设备200可以为服务器、台式计算机等。本申请实施例并不限定存储设备200部署的位置。该存储设备200可以部署在云端,如部署在边缘数据中心,还可以部署在中心云数据中心。
存储设备200可以接收来自应用服务器100的数据访问请求或设置请求,并处理数据访问请求或设置请求,执行相应的操作。存储设备200可以根据设置请求设置数据访问请求的优先级。并基于所设置的优先级处理数据访问请求。
在硬件上,如图3所示,存储设备200包括至少一个处理器210、内存220、网卡230和硬盘240。处理器210、内存220、网卡230和硬盘240之间通过总线连接。其中,处理器210和内存220用于提供计算资源。具体地,处理器210是一个中央处理器210(central processingunit,CPU)。图3中仅示出了两个CPU,本申请实施例并不限定CPU的数量,可以为一个也可以为多个。
内存220是指与处理器210直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为存储操作系统或其他正在运行中的程序的程序指令的存储器。内存220包括至少两种存储器,例如内存220既可以是随机存取存储器,如动态随机存取存储器(dynamic random access memory,DRAM)、存储级存储器(storage class memory,SCM),也可以是只读存储器(read only memory,ROM)。内存220还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。内存220还可以是双列直插式存储器模块或双线存储器模块(dual in-line memory module,DIMM)。
硬盘240用于提供存储资源,例如存储数据。它可以是磁盘或者其他类型的存储介质,例如固态硬盘240(SSD)或者叠瓦式磁记录硬盘240等。
网卡230用于与应用服务器100通信,网卡230可以接收来自应用服务器100的消息,当网卡230具备数据处理功能时,如该网卡230为智能网卡,网卡230也可以代替处理器210执行一些处理操作。
在本申请实施例中对于来自应用服务器100的设置请求以及数据访问请求,存储设备200内部可以由处理器210处理该设置请求以及数据访问请求,网卡230仅是将设置请求以及数据访问请求转发给处理器210。在这种处理方式中,处理器210调用内存220中程序指令对设置请求进行处理。存储设备200内部也可以由网卡230解析并处理设置请求以及数据访问请求。这种处理方式中,设置请求以及数据访问请求不会传输至处理器210,能够减少对处理器210的占用。存储设备200内部也可以由网卡230和处理器210配合处理请求消息。例如,网卡230可以处理数据访问请求,将数据访问请求转发给硬盘240,以实现数据访问,由处理器210处理设置请求。
由上述描述可知,对于存储设备200可以按照优先级处理数据访问请求,数据访问请求的处理顺序调整更加规范,更高效,能够较好的保证处理数据访问请求的时延。
下面结合图4对本申请实施例提供的数据访问方法进行说明,如图4所示,为本申请实施例提供的一种数据访问方法,该方法包括:
步骤401:应用服务器100向存储设备200发送设置请求,该设置请求用于请求设置存储设备200数据访问请求的优先级。
当用户或者运维人员需要调整数据访问请求的优先级时,可以通过操作运行在应用服务器100的应用程序,触发应用服务器100生成设置请求,该设置请求用于设置存储设备200数据访问请求的优先级。应用服务器100可以向存储设备200发送该设置请求。
在本申请实施例中,数据访问请求的优先级是指存储设备200处理数据访问请求所需遵循的优先顺序。
数据访问请求的优先级配置粒度有很多种,对于任一数据访问请求,该数据访问请求可以是用户通过应用程序触发客户端设备300生成的。
以视频播放场景下产生的数据访问请求为例,视频播放的应用程序可以部署在用户的移动终端上、智能家居设备(如电视机)、台式机、笔记本电脑等不同客户端设备300上。部署在不同类型客户端设备300上的应用程序可能不同。部署在移动终端上的应用程序以及部署在笔记本电脑的应用程序不同。用户为了观看视频可以在应用程序中输入账号,登陆到视频播放平台。用户通过点击视频播放平台上视频视图或文字信息观看视频,用户在点击视频播放平台上视频视图或文字信息时,会触发应用程序所在客户端设备300,生成数据访问请求,该数据访问请求所请求的数据为用户需要观看的视频。从不同角度考虑该数据访问请求的来源,该数据访问请求可以认为是由该用户发起的,也可以认为是由该应用程序发起的,还可以是由该客户端设备300发起的。
按照该数据访问请求的发起方,数据访问请求的优先级配置粒度可以是按照用户为粒度配置的,也可以是以应用程序为粒度配置的,还可以是以客户端设备300为粒度配置的。也就是说,数据访问请求的优先级也可以基于用户、应用程序以及客户端设备300中的部分或全部进行设置。
也即在本申请实施例中允许应用服务器100基于不同粒度设置数据访问请求的优先级,例如,应用服务器100可以以应用程序为粒度对发起的数据访问请求设置优先级,应用服务器100也可以以用户为粒度对发起的数据访问请求设置优先级。
以文件管理场景下产生的数据访问请求为例,文件管理的应用程序可以部署在用户的移动终端上、台式机、笔记本电脑等不同客户端设备300上。部署在不同类型客户端设备300上的应用程序可能不同。应用程序所能登陆的用户类型也不同。举例来说,部署在移动终端的文件管理的应用程序可以为个人级文件管理软件,适用于用户对个人、私有的文件的进行管理,通常通过移动终端登陆到文件管理的应用程序的用户为个人用户。部署在特定区域内的台式机的文件管理的应用程序可以为企业级文件管理软件,适用于企业内部人员对企业内部的文件进行管理。对于企业内部,不同人员的等级不同,级别高的企业人员能够对保密级别更高的文件进行管理,或者所能管理的文件范围更广。
无论是企业级用户,还是个人用户,为了管理文件可以在文件管理的应用程序中输入账号,登陆到文件管理系统。用户(企业级用户或是个人用户)通过点击文件管理系统中文件的图标,对文件进行增删查改等操作,这些操作会触发应用程序所在客户端设备300,生成数据访问请求,该数据访问请求所请求的数据为用户所操作的文件。从不同角度考虑该数据访问请求的来源,该数据访问请求可以认为是由该用户(如企业级用户或个人用户)发起的,也可以认为是由该应用程序(企业级文件管理软件或个人级管理软件)发起的,还可以是由该企业中不同等级的用户发起的。
从优先级的配置粒度,可以包括用户优先级、应用程序优先级以及服务优先级。用户优先级可以理解为针对不同用户发起的数据访问请求配置的优先级,如重要用户配置高优先级,普通用户配置低优先级。应用程序优先级可以理解为针对不同应用程序发起的数据访问请求配置的优先级,如企业级应用程序配置高优先级,个人级应用程序配置低优先级。服务优先级可以理解为针对不同等级的用户发起的数据访问请求配置的优先级,如高等级用户配置高优先级,低级别用户配置低优先级,付费高的用户配置高优先级,未额外支付费用的配置低优先级。
上述优先级的配置粒度仅是举例,本申请实施例并不限定优先级配置粒度的具体表现形式,在不同的场景中,可以采用不同的优先级配置粒度。
为了能够实现优先级配置功能,在应用服务器100中部署有用户管理模块110。用户管理模块110可以理解为运行在应用服务器100上的软件模块。本申请实施例并不限定该软件模块的呈现形式的,例如用户管理模块110可以以应用程序接口(applicationprogramming interface,API)的形式被调用,也可以是以通信协议的API的形式被调用。
用户管理模块110用于实现优先级的设置。应用服务器100可以通过调用该用户管理模块110生成用于设置优先级的设置请求,并将该设置请求发送给存储设备200。
应用服务器100生成设置请求的场景有许多种,这里列举其中几种:
以应用服务器100为介于客户端设备300以及存储设备200之间的中间设备为例,用户可以通过客户端设备300进行优先级的配置,如用户可以通过付费获取高优先级的权限。客户端设备300可以将用户配置的优先级发送给应用服务器100,或者应用服务器100可以收集用户在客户端设备300所配置的优先级。应用服务器100在确定了用户所配置的优先级之后可以调用用户管理模块110,生成设置请求,将该设置请求发送给存储设备200。
运维人员也可以直接对应用服务器100进行操作,进行优先级的配置,如运维人员可以调整不同客户端设备300的优先级,或不同应用程序的优先级。客户端设备300可以根据运维人员的配置调用用户管理模块110,生成设置请求,将该设置请求发送给存储设备200。
需要说明的是,在本申请实施例中,应用服务器100可以为客户端设备300,也即应用服务器100直接部署在用户侧,在用户触发下可以发出数据访问请求。同时,应用服务器100具备优先级设置功能,应用服务器100在实现该优先级设置功能时,可以仅只针对该应用服务器100上部署的应用程序发送数据访问请求设置优先级,针对该应用服务器100发送数据访问请求设置优先级,或针对登陆在该应用服务器100上客户端软件的用户发送数据访问请求设置优先级。当然,该应用服务器100也可以针对多种应用程序发送数据访问请求设置优先级,针对不同客户端设备300发送数据访问请求设置优先级,或针对不同用户发送数据访问请求设置优先级。在这种情况下,应用服务器100可以认为是优先级管理设备,所设置的优先级并非仅局限于自身发送的数据访问请求,还可以针对该应用服务器100之外发起的数据访问权请求设置优先级。在本申请实施例中,以应用服务器100作为优先级管理设备为例进行说明。
应用服务器100设置优先级的方式存在多种。应用服务器100可以只设置部分数据访问请求的优先级。例如,应用服务器100可以设置部分应用程序、部分客户端设备300或部分用户发起的数据访问请求设置优先级。应用服务器100也可以设置全部数据访问请求的优先级。例如,应用服务器100也可以设置全部应用程序、全部客户端设备300或全部用户发起的数据访问请求设置优先级。
优先级的表征方式有很多种,例如,应用服务器100与存储设备200可以利用数值表征不同针对不同应用程序发起的数据访问请求的优先级,优先级由高至低分别为1、2、3、4……。又例如,应用服务器100与存储设备200可以利用英文表征不同针对不同用户发起的数据访问请求的优先级,优先级由高至低分别为Ex(extreme high priority)、Ui(ultrahigh priority)、Ge(general priority)……。本申请实施例并不限定优先级的表征方式。
例如,当应用服务器100只设置一个应用程序、一个客户端设备300或一个用户发起的数据访问请求设置优先级时,应用服务器100所发起的设置请求可以携带标识该应用程序、客户端设备300或用户的信息、以及该应用程序、客户端设备300或用户的优先级。标识该应用程序、客户端设备300或用户的信息可以简称为该应用程序、客户端设备300或用户的标识信息。本申请实施例并不限定该标识信息的具体类型,凡是能够唯一标识应用程序、客户端设备300或用户的信息均适用于本申请实施例。
又例如,当应用服务器100设置多个应用程序、多个客户端设备300或多个用户发起的数据访问请求设置优先级时,应用服务器100所发起的设置请求可以携带标识该多个应用程序、多个客户端设备300或多个用户的信息、以及该多个应用程序、多个客户端设备300或多个用户的优先级。该多个应用程序、多个客户端设备300或多个用户的信息、以及该多个应用程序、多个客户端设备300或多个用户的优先级可以整合为优先级列表(table),以便于存储设备200解析。
需要说明的是,应用服务器100所述设置优先级并非固定不变的,在本申请实施例中允许应用服务器100动态的调整部分或全部数据访问请求的优先级。
应用服务器100可以生成用于设置优先级的设置请求,设置请求包括但不限于:
用于初始化优先级的设置请求,如Init(priority table[user,app,level]),其中,user用于指示用户,app用于指示应用程序,level用于指示优先级,如用数字或英文标识指示优先级。
用于更新优先级的设置请求,如update(priority tabe[user,app,level])。
步骤402:存储设备200接收该设置请求,根据该设置请求更新优先级列表。
在存储设备200中可以保存有优先级列表,该优先级列表可以记录数据访问请求的优先级。基于前述说明可知,以数据访问请求的来源角度,数据访问请求的优先级可以分为不同粒度的优先级,例如不同用户的优先级、不同应用程序的优先级、以及不同客户端设备300的优先级。该优先级列表可以记录该不同粒度的优先级。
如图5所示,为存储设备200所保存的优先级列表的抽象示意图,在该优先级列表中,分别从用户、以及应用程度的粒度记录了优先级。存储设备200基于该用户、以及应用程度的优先级,可以采用加权求和的方式获得最终的数据访问请求的整体的优先级。
当存储设备200接收到设置请求后,可以根据该设置请求中所携带的信息更新优先级列表。如删除优先级列表中用户、客户端设备300或应用程序的优先级、修改优先级列表中的用户、客户端设备300或应用程序的优先级、或在优先级列表中增加新的用户、客户端设备300或应用程序的优先级。
具体到存储设备200的内部:
若数据访问请求以及设置请求均由网卡230处理,该优先级列表可以保存在网卡230中,以便网卡230能够利用优先级列表处理接收到的数据访问请求。当网卡230接收到该设置请求后,可以根据该设置请求更新网卡230内部保存的优先级列表。
若数据访问请求以及设置请求均由处理器210处理,该优先级列表可以保存内存220中。当处理器210接收到该设置请求后,可以根据该设置请求更新内存220中的优先级列表。
若数据访问请求以及设置请求由处理器210和网卡230配合处理,例如,网卡230处理数据访问请求,处理器210来处理设置请求,该优先级列表可以保存在网卡230中,以便网卡230能够利用优先级列表处理接收到的数据访问请求。另外,在存储设备200中也可以在内存220中保存相同的一份优先级列表。这样当网卡230中的优先级列表失效或损坏时,可以利用内存220中保存的优先级列表恢复网卡230中的优先级列表。当处理器210接收到该设置请求后,可以指示网卡230更新网卡230中的优先级列表。若内存220中也保存了一份优先级列表,处理器210也可以根据该设置请求更新内存220中的优先级列表。
在更新优先级列表之后,存储设备200可以基于更新后的优先级列表处理数据访问请求。存储设备200处理数据访问请求的方式可以参见步骤403~步骤404。
步骤403:应用服务器100在用户的触发下生成数据访问请求,该数据访问请求携带标识信息,该标识信息包括下列的部分或全部:应用程序的标识信息、用户的标识信息以及客户端设备300的标识信息。
当应用服务器100为客户端设备300时,应用服务器100可以检测到用户的操作,识别出用户的信息、以及用户所操作的应用程序的信息,当应用服务器100生成数据访问请求中,可以在数据访问请求中携带标识信息。
当应用服务器100为间于客户端设备300和存储设备200的中间设备时,应用服务器100在接收到客户端设备300发送的数据访问请求后,可以保留据数据访问请求中携带的标识信息,将该数据访问请求发送给存储设备200,该标识信息包括应用程序的标识信息、用户的标识信息或客户端设备300的标识信息。
需要说明的是,应用服务器100携带的标识信息与存储设备200数据访问请求的优先级的粒度相关,例如,存储设备200数据访问请求的优先级仅是以用户以及应用程序为粒度设置,应用服务器100可以只需保证数据访问请求中携带用户的标识信息以及应用程序的标识信息。例如,存储设备200数据访问请求的优先级仅是以用户为粒度设置,应用服务器100可以在数据访问请求中携带用户的标识信息。
数据访问请求包括但不限于:
用于读取数据的数据读取请求,如Read IO(info[user,app,address,etc.]),其中,Read IO指示数据访问请求为数据读取请求,info指示该数据读取请求可以携带的信息,数据读取请求所携带的信息可以包括中括号中的信息,user用于指示用户,app用于指示应用程序,address用于标识客户端设备300的地址。
用于写入数据的数据写入请求,如Write IO(info[user,app,address,etc.]),其中,Read IO指示数据访问请求为数据写入请求。关于info、user、app、address的说明可以参见前述说明,此处不再赘述。
步骤404:存储设备200接收数据访问请求,解析该数据访问请求,基于优先级列表处理该数据访问请求。
当存储设备200接收到数据访问请求后,可以根据数据访问请求中携带的标识信息以及存储设备200内部保存的优先级列表确定该数据访问请求的优先级。
存储设备200可以按照优先级依次处理各个数据访问请求。例如,对于优先级较高的数据访问请求,也即数据访问请求的优先级高于第一阈值,存储设备200可以优先处理该数据访问请求,优先选择处理该数据访问请求的硬盘240,指示硬盘240处理该数据访问请求。需要说明的是,硬盘240并非直接处理该数据访问请求,而是处理基于该数据访问请求产生的、放置在该硬盘240的提交队列中的命令。
对于优先级较低的数据访问请求,也即数据访问请求的优先级低于第二阈值,第二阈值不大于第一阈值,存储设备200可以延后处理该数据访问请求或者按照数据访问请求的接收顺序正常处理该数据访问请求。
存储设备200在按照优先级顺序依次处理各个数据访问请求时,针对任一数据访问请求,存储设备200可以为该数据访问请求选择处理该数据访问请求的硬盘240,将基于该数据访问请求产生的命令放置在该硬盘240的提交队列中。存储设备200还可以采用其他方式来保证数据访问请求的优先级。
下面对存储设备200优先处理该数据访问请求的方式进行说明:
存储设备200可以监控存储设备200中各个硬盘240的状态,可以实时获取各个硬盘240的状态(如带宽、时延、是否正常工作等)。例如,存储设备200可以向硬盘240发送监控命令,该监控命令用于请求该硬盘240的状态,硬盘240在接收到该监控命令后,识别该监控命令,向该存储设备200反馈监控响应,该监控响应中携带硬盘240的状态。示例性的,存储设备200当需要获知该硬盘240的带宽时,存储设备200可以向硬盘240发送用于请求该硬盘240带宽的监控命令,硬盘240在接收到该监控命令后,可以将硬盘240的带宽携带在监控响应中反馈给存储设备200。存储设备200可以通过监控命令方便、快捷的获取该硬盘240的状态,保证所获取的硬盘240的状态的实时性。
存储设备200可以通过如下方式中的部分或全部优先处理该数据访问请求:
方式一:存储设备200根据存储设备200中各个硬盘240的状态从中选择硬盘240的状态满足状态条件的硬盘240,将基于该数据访问请求产生的命令放置在该硬盘240的提交队列中。
状态条件包括下列的部分或全部:
硬盘240的带宽大于带宽阈值、硬盘240的时延小于时延阈值、硬盘240正常。
方式二:存储设备200可以将基于该数据访问请求产生的命令插入到硬盘240的提交队列靠前的位置。例如,存储设备200可以将该命令插入该提交队列的头部。又例如,存储设备200可以将命令插入到提交队列的尾部,但在该命令中增加标识,该标识用于指示优先处理该命令。
方式三:存储设备200可以将基于该数据访问请求产生的命令放置在硬盘240的多个提交队列中优先级较高的提交队列中。
方式四:存储设备200可以指示硬盘240暂停该硬盘240的部分或全部后台操作。后台操作是指硬盘240中数据读取以及写入之外的操作。后台操作包括但不限于垃圾回收、后台巡检、数据重读、磨损均衡等。
方式五:若存储设备200所选择的硬盘240的负载较高,存储设备200可以将该命令放置在该硬盘240的备份盘的提交队列中。硬盘240的备份盘是指与该硬盘240保存有相同数据的硬盘240。
方式六:存储设备200在基于该数据访问请求产生的命令增加优先级标识,该优先级标识用于标识该命令的优先级。该优先级标识可以是基于该数据访问请求的优先级确定的。
该优先级标识是硬盘240可以识别的,也就是说,硬盘240在从该提交队列中获取各个需要处理的命令时,硬盘240可以识别该命令中携带的优先级标识,按照命令中携带的优先级标识依次处理提交队列中的命令。
需要说明的是,存储设备200可以只在部分命令中增加优先级标识,例如对于优先级最高的或者优先级大于设定值的数据访问请求,存储设备200可以在基于该数据访问请求产生的命令中增加优先级标识。举例来说,对于第一优先级和第二优先级的数据访问请求,存储设备可以在基于第一优先级的该数据访问请求产生的命令中增加优先级标识,以标识该命令的优先级为第一。存储设备可以在基于第二优先级的该数据访问请求产生的命令中增加优先级标识,以标识该命令的优先级为第二。这样,当硬盘240从提交队列中获取该携带有优先级标识的命令中,可以将该命令的处理顺序提前,先处理优先级为第一的命令,之后再处理优先级为第二的命令,之后再处理无优先级标识的命令。
方式七:存储设备200侧可以预先配置有不同优先级的命令格式,也就说是,优先级不同,命令的格式也不同。存储设备200可以按照数据访问请求的优先级生成相应优先级的命令。存储设备200将不同命令放置在硬盘240的提交队列中,硬盘240从该提交队列中获取命令,根据命令的格式来识别各个命令的优先级,按照优先级来处理各个命令。
基于与方法实施例同一发明构思,本申请实施例还提供了一种数据访问装置,该数据访问装置用于执行上述如图4所示的方法实施例中所述存储设备执行的方法,相关特征可参见上述方法实施例,此处不再赘述。如图6所示,该数据访问装置600包括接收模块601、处理模块602。
接收模块601,用于接收设置请求,设置请求用于设置数据访问请求的处理优先级,处理优先级描述了对数据访问请求的处理次序。
处理模块602,用于基于设置请求配置优先级列表,优先级列表记录了不同数据访问请求的处理优先级;按照处理优先级处理接收到的数据访问请求。
在一种可能的实施方式中,处理优先级是基于下列的部分或全部粒度设置的:发起数据访问请求的用户、发起数据访问请求的应用程序、发起数据访问请求的客户端设备。
在一种可能的实施方式中,数据访问请求携带有标识信息,标识信息包括下列的部分或全部:应用程序的标识信息、用户的标识信息、客户端设备的标识信息。
在一种可能的实施方式中,处理模块602在按照处理优先级处理接收到的数据访问请求时,可以解析接收到的数据访问请求,提取数据访问请求中的标识信息。处理模块602根据该标识信息从优先级列表中确定该数据访问请求的处理优先级。处理模块602根据处理优先级调整数据访问请求的处理次序;按照处理次序依次处理数据访问请求。
在一种可能的实施方式中,存储设备包括多个硬盘,装置还包括发送模块603,发送模块603可以向所述多个硬盘分别发送监控命令,监控命令用于请求硬盘的状态。接收模块601可以获取所述多个硬盘反馈的所述多个硬盘的状态。处理模块602在按照处理次序依次处理数据访问请求时,可以根据多个硬盘的状态为数据访问请求选择目标硬盘;之后,再将基于数据访问请求产生的命令放置在目标硬盘的提交队列中。
在一种可能的实施方式中,处理模块602在根据多个硬盘的状态为数据访问请求选择目标硬盘时,可以根据多个硬盘的状态从中选择满足状态条件的目标硬盘,状态条件包括下列的部分或全部:硬盘的带宽大于带宽阈值、硬盘的时延小于时延阈值、硬盘正常。
在一种可能的实施方式中,处理模块602在将基于数据访问请求产生的命令放置在目标硬盘的提交队列中,可以将基于数据访问请求产生的命令插入到目标硬盘的提交队列中靠前的位置,如插入到队首,还可以将基于数据访问请求产生的命令放置在目标硬盘的多个提交队列中优先级大于阈值的提交队列中。
在一种可能的实施方式中,装置还包括指示模块604,该指示模块604可以指示目标硬盘暂停目标硬盘中的后台操作。
在一种可能的实施方式中,处理模块602在将基于数据访问请求产生的命令放置在目标硬盘的提交队列中时,可以将基于数据访问请求产生的命令放置在目标硬盘的备份盘的提交队列中,目标硬盘的备份盘是指与目标硬盘保存有相同数据的硬盘。
在一种可能的实施方式中,基于数据访问请求产生的命令中包括优先级标识,优先级标识用于指示命令的优先级。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (22)
1.一种数据访问方法,其特征在于,所述方法应用于存储系统中的存储设备,所述方法包括:
所述存储设备接收设置请求,所述设置请求用于设置数据访问请求的处理优先级,所述处理优先级描述了对数据访问请求的处理次序;
所述存储设备基于所述设置请求配置优先级列表,所述优先级列表记录了不同数据访问请求的处理优先级;
所述存储设备按照所述处理优先级处理接收到的数据访问请求。
2.如权利要求1所述的方法,其特征在于,所述处理优先级是基于下列的部分或全部粒度设置的:
发起数据访问请求的用户、发起数据访问请求的应用程序、发起数据访问请求的客户端设备。
3.如权利要求2所述的方法,其特征在于,所述数据访问请求携带有标识信息,所述标识信息包括下列的部分或全部:
应用程序的标识信息、用户的标识信息、客户端设备的标识信息。
4.如权利要求3所述的方法,其特征在于,所述存储设备按照所述处理优先级处理接收到的数据访问请求,包括:
所述存储设备解析接收到的数据访问请求,提取所述数据访问请求中的标识信息;
所述存储设备根据所述标识信息所确定的处理优先级调整所述数据访问请求的处理次序;
所述存储设备按照所述处理次序依次处理所述数据访问请求。
5.如权利要求1或4所述的方法,其特征在于,所述存储设备包括多个硬盘,所述存储设备按照所述处理次序依次处理所述数据访问请求,包括:
所述存储设备向所述多个硬盘分别发送监控命令,所述监控命令用于请求硬盘的状态;
所述存储设备获取所述多个硬盘反馈的所述多个硬盘的状态,根据所述多个硬盘的状态为所述数据访问请求选择目标硬盘;
所述存储设备将基于所述数据访问请求产生的命令放置在所述目标硬盘的提交队列中。
6.如权利要求5所述的方法,其特征在于,所述存储设备根据所述多个硬盘的状态为所述数据访问请求选择目标硬盘,包括:
所述存储设备根据所述多个硬盘的状态从中选择满足状态条件的目标硬盘,所述状态条件包括下列的部分或全部:硬盘的带宽大于带宽阈值、硬盘的时延小于时延阈值、硬盘正常。
7.如权利要求5或6所述的方法,其特征在于,所述存储设备将基于所述数据访问请求产生的命令放置在所述目标硬盘的提交队列中,包括:
所述存储设备将基于所述数据访问请求产生的命令插入到所述目标硬盘的提交队列队首;或
所述存储设备将基于所述数据访问请求产生的命令放置在所述目标硬盘的多个提交队列中优先级大于阈值的提交队列中。
8.如权利要求5~7任一项所述的方法,其特征在于,所述方法还包括:
所述存储设备指示所述目标硬盘暂停所述目标硬盘中的后台操作。
9.如权利要求5或6所述的方法,其特征在于,所述存储设备将基于所述数据访问请求产生的命令放置在所述目标硬盘的提交队列中,包括:
所述存储设备将基于所述数据访问请求产生的命令放置在所述目标硬盘的备份盘的提交队列中,所述目标硬盘的备份盘是指与所述目标硬盘保存有相同数据的硬盘。
10.如权利要求5~9任一项所述的方法,其特征在于,基于所述数据访问请求产生的命令中包括优先级标识,所述优先级标识用于指示所述命令的优先级。
11.一种数据访问装置,其特征在于,所述装置应用于存储系统中的存储设备,所述装置包括接收模块、处理模块;
所述接收模块,用于接收设置请求,所述设置请求用于设置数据访问请求的处理优先级,所述处理优先级描述了对数据访问请求的处理次序;
所述处理模块,用于基于所述设置请求配置优先级列表,所述优先级列表记录了不同数据访问请求的处理优先级;按照所述处理优先级处理接收到的数据访问请求。
12.如权利要求11所述的装置,其特征在于,所述处理优先级是基于下列的部分或全部粒度设置的:
发起数据访问请求的用户、发起数据访问请求的应用程序、发起数据访问请求的客户端设备。
13.如权利要求12所述的装置,其特征在于,所述数据访问请求携带有标识信息,所述标识信息包括下列的部分或全部:
应用程序的标识信息、用户的标识信息、客户端设备的标识信息。
14.如权利要求13所述的装置,其特征在于,所述处理模块在按照所述处理优先级处理接收到的数据访问请求,用于:
解析接收到的数据访问请求,提取所述数据访问请求中的标识信息;
根据所述标识信息所确定的处理优先级调整所述数据访问请求的处理次序;
按照所述处理次序依次处理所述数据访问请求。
15.如权利要求11或14所述的装置,其特征在于,所述存储设备包括多个硬盘,所述装置还包括发送模块;
所述发送模块,用于向所述多个硬盘分别发送监控命令,所述监控命令用于请求硬盘的状态;
所述接收模块,用于获取所述多个硬盘反馈的所述多个硬盘的状态;
所述处理模块根据所述多个硬盘的状态为所述数据访问请求选择目标硬盘;
将基于所述数据访问请求产生的命令放置在所述目标硬盘的提交队列中。
16.如权利要求15所述的装置,其特征在于,所述处理模块在根据所述多个硬盘的状态为所述数据访问请求选择目标硬盘,用于:
根据所述多个硬盘的状态从中选择满足状态条件的目标硬盘,所述状态条件包括下列的部分或全部:硬盘的带宽大于带宽阈值、硬盘的时延小于时延阈值、硬盘正常。
17.如权利要求15或16所述的装置,其特征在于,所述处理模块在将基于所述数据访问请求产生的命令放置在所述目标硬盘的提交队列中,用于:
将基于所述数据访问请求产生的命令插入到所述目标硬盘的提交队列队首;或
将基于所述数据访问请求产生的命令放置在所述目标硬盘的多个提交队列中优先级大于阈值的提交队列中。
18.如权利要求15~17任一项所述的装置,其特征在于,所述装置还包括指示模块;所述指示模块,用于指示所述目标硬盘暂停所述目标硬盘中的后台操作。
19.如权利要求15或16所述的装置,其特征在于,所述处理模块在将基于所述数据访问请求产生的命令放置在所述目标硬盘的提交队列中,用于:
将基于所述数据访问请求产生的命令放置在所述目标硬盘的备份盘的提交队列中,所述目标硬盘的备份盘是指与所述目标硬盘保存有相同数据的硬盘。
20.如权利要求15~19任一项所述的装置,其特征在于,基于所述数据访问请求产生的命令中包括优先级标识,所述优先级标识用于指示所述命令的优先级。
21.一种计算设备,其特征在于,包括存储器和处理器;所述存储器存储有程序指令,所述处理器运行所述程序指令以执行权利要求1~10任一所述的方法。
22.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/137163 WO2023116438A1 (zh) | 2021-12-21 | 2022-12-07 | 一种数据访问方法、装置以及设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111574333 | 2021-12-21 | ||
CN2021115743331 | 2021-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116301568A true CN116301568A (zh) | 2023-06-23 |
Family
ID=86782029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210151597.4A Pending CN116301568A (zh) | 2021-12-21 | 2022-02-18 | 一种数据访问方法、装置以及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116301568A (zh) |
WO (1) | WO2023116438A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949814B2 (en) * | 2004-05-22 | 2011-05-24 | Kam Fu Chan | Swapping “fixed system” hard disk |
CN103995674B (zh) * | 2014-04-17 | 2017-08-25 | 华为技术有限公司 | 访问请求处理方法、装置和设备 |
CN109343862B (zh) * | 2018-08-31 | 2022-05-06 | 北京三快在线科技有限公司 | 应用的资源数据的调度方法及装置 |
CN110532133B (zh) * | 2019-07-16 | 2021-12-31 | 中国科学院国家天文台 | 一种低功耗大容量可扩充数据存储方法 |
CN112003915A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种文件的访问方法、装置、设备及可读介质 |
-
2022
- 2022-02-18 CN CN202210151597.4A patent/CN116301568A/zh active Pending
- 2022-12-07 WO PCT/CN2022/137163 patent/WO2023116438A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023116438A1 (zh) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8893146B2 (en) | Method and system of an I/O stack for controlling flows of workload specific I/O requests | |
US9692846B2 (en) | System, device and method for providing push service using feedback message | |
US10120820B2 (en) | Direct memory access transmission control method and apparatus | |
EP2989543B1 (en) | Method and device for updating client | |
US20040078520A1 (en) | Disk array storage device with means for enhancing host application performance using task priorities | |
US11102322B2 (en) | Data processing method and apparatus, server, and controller | |
US10552089B2 (en) | Data processing for managing local and distributed storage systems by scheduling information corresponding to data write requests | |
US9864706B2 (en) | Management of allocation for alias devices | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
CN111935227A (zh) | 通过浏览器上传文件的方法、浏览器和电子设备 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
US9577967B2 (en) | Method and system for managing an informational site using a social networking application | |
CN115454576B (zh) | 一种虚拟机进程管理方法、系统及电子设备 | |
US9898490B2 (en) | Systems and methods for supporting multiple database server versions on a database machine | |
WO2023093194A1 (zh) | 一种云监控方法和云管理平台 | |
US10616317B2 (en) | Method and system for affinity load balancing | |
CN116301568A (zh) | 一种数据访问方法、装置以及设备 | |
CN115686746A (zh) | 访问方法、任务处理方法、计算设备及计算机存储介质 | |
US20210250239A1 (en) | Reactive non-blocking input and output for target device communication | |
US10673937B2 (en) | Dynamic record-level sharing (RLS) provisioning inside a data-sharing subsystem | |
CN108173892A (zh) | 云端镜像操作方法和装置 | |
US9514087B2 (en) | Dynamic data collection communication between adapter functions | |
US11972287B2 (en) | Data transfer prioritization for services in a service chain | |
US9674282B2 (en) | Synchronizing SLM statuses of a plurality of appliances in a cluster | |
US11740918B2 (en) | Method for accessing application logs within virtual machines based on operator-defined criteria |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |