CN107870877B - 用于在存储***中管理数据访问的方法和*** - Google Patents

用于在存储***中管理数据访问的方法和*** Download PDF

Info

Publication number
CN107870877B
CN107870877B CN201610848292.3A CN201610848292A CN107870877B CN 107870877 B CN107870877 B CN 107870877B CN 201610848292 A CN201610848292 A CN 201610848292A CN 107870877 B CN107870877 B CN 107870877B
Authority
CN
China
Prior art keywords
control node
time
storage control
storage
data access
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
CN201610848292.3A
Other languages
English (en)
Other versions
CN107870877A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201610848292.3A priority Critical patent/CN107870877B/zh
Priority to US15/712,324 priority patent/US10846094B2/en
Publication of CN107870877A publication Critical patent/CN107870877A/zh
Application granted granted Critical
Publication of CN107870877B publication Critical patent/CN107870877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/03Credit; Loans; Processing thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式涉及用于在存储***中管理数据访问的方法和***。在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的方法,包括:获取存储***中的存储控制节点中的可用资源的状态信息;基于状态信息确定描述存储控制节点对于数据访问的处理能力的信用评分;以及***用评分以用于向主机通知存储控制节点对于数据访问的处理能力。在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的方法,包括:接收来自存储***中的存储控制节点的信用评分,信用评分描述存储控制节点对于数据访问的处理能力;以及基于信用评分调整将要从主机被发送至存储控制节点的数据访问请求。

Description

用于在存储***中管理数据访问的方法和***
技术领域
本发明的各实施方式涉及存储管理,更具体地,涉及在存储***(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)中管理数据访问方法和***。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储***的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储***来提高数据的可靠性。当存储***中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。
随着用户对于数据存储***的数据访问请求的数量的增加,数据存储***的工作负载逐渐加重。如果数据存储***不断接收到来自用户的大量数据访问请求,则有可能导致数据存储***的负载进一步增加,并且使得数据存储***的响应速度不再满足用户的需求。尽管提高数据存储***中的存储控制节点的硬件配置可以在一定程度上缓和上述问题,然而提高硬件配置一方面会造成成本的增加,另一方面当数据访问处于较低程度时,这些硬件资源将被闲置进而造成硬件资源的浪费。
发明内容
因而,期望能够开发并实现一种能够有效地管理存储***中的数据访问,进而提高存储***的访问性能的技术方案。期望该技术方案能够与现有的存储***相兼容,并且在无需针对现有存储***增加额外硬件设备的情况下以更高的效率来管理存储***中的数据访问。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的方法,包括:获取所述存储***中的存储控制节点中的可用资源的状态信息;基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分(credit score);以及公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的设备,包括:获取模块,配置用于获取所述存储***中的存储控制节点中的可用资源的状态信息;确定模块,配置用于基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;以及公开模块,配置用于公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的***,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法包括:获取所述存储***中的存储控制节点中的可用资源的状态信息;基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;以及公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的方法,包括:接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力;以及基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的设备,包括:接收模块,配置用于接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力;以及调整模块,配置用于基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的***,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法包括:接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力;以及基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。
采用本发明的技术方案,可以有效地管理存储***中的数据访问,进而提高存储***的访问效率。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算***的框图;
图2示意性示出了数据存储***的示意性结构图;
图3示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的方法的架构图;
图4示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的方法的流程图;
图5示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问请求的方法的流程图;
图6示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的方法的流程图;
图7示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问请求的方法的流程图;
图8A和8B分别示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算***100的框图。如图1所示,计算机***100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、***总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与***总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“***”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供者来通过因特网连接)。
下面将参照本发明实施方式的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
在下文中,将以RAID为存储***的示例来描述本发明的各个实施方式的具体实现。RAID可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。随着存储设备的发展,RAID经历了多个标准,例如RAID-1,RAID-10,RAID-3,RAID-30,RAID-5,RAID-50等等。操作***可以把由多个存储设备构成的磁盘阵列视为单一的逻辑存储单元或磁盘。通过将磁盘阵列划分为多个条带(strip),可以将数据分布到多个存储设备,从而实现低延迟、高带宽,并且其中的部分磁盘毁坏后可以在一定程度上恢复数据。
图2示意性示出了数据存储***的示意性结构图200。如图2所示,存储***200可以通过一个或者多个存储控制节点来向外界提供数据访问服务。在此示例中,存储***200可以包括存储控制节点210和220。在存储***200的操作期间,两个存储控制节点210和220可以并行地向外界提供服务。如果其中一个节点出现故障,则另一个节点可以继续工作。两个存储控制节点210和220可以通过通道来交换信息,以便协调工作。
存储控制节点210可以包括控制器212和存储器214(例如,高速缓存)。当存储控制节点210接收到来自外界主机的访问请求(例如,读写请求)时,控制器212处理该请求,并且在存储器214中查找与请求相关联的数据是否已经被加载到存储器214之中。如果相关联的数据已经被装载(命中),则控制节点210可以继续执行访问请求;如果在存储器214中并不存在相关联的数据(未命中,miss),则需要在存储器214中分配相应的可用存储空间来用于执行该请求。
当控制节点210响应于来自主机216的数据访问请求(例如,写请求)时,需要将与写请求相关联的数据加载到存储器214中,并且进行与向存储设备240写入数据相关联的一系列操作。然而,当控制节点210接收到大量数据访问请求时,将会造成控制节点210本身的可用资源的短缺,进而严重影响存储***的运行效率。
目前已经开发出了用于管理数据访问的技术方案。在一个技术方案中,可以基于历史经验值来设置脏数据被保留在存储器中的阈值时间。当脏数据在存储器中被保留的时间达到该阈值时间时,则将该脏数据冲刷至存储***的存储设备中。尽管这一技术方案可以在一定程度上缓解控制节点中的存储器空间的不足的问题,然而该技术方案中的时间阈值是基于历史经验设置的,阈值的大小将极大地影响存储***的运行效率。另一方面,当大量数据访问请求涌入控制节点时,该技术方案并不能调度数据访问请求,这将导致存储节点中的可用资源被迅速耗尽。因而,期望开发出一种可以以更为有效的方式来管理数据访问的技术方案。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的方法,包括:获取所述存储***中的存储控制节点中的可用资源的状态信息;基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;以及公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。
图3示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的方法的架构图300。如图3所示,可以获取存储***中的存储控制节点210处的可用资源的状态信息,并基于该状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分310。在此实施方式中,可以公开该信用评分310,例如,可以在存储控制节点210中的主机侧接口处公开。
由于该信用评分310可以向外界指示当前所述存储控制节点210对于数据访问的处理能力,因而耦合至该存储控制节点210的主机(例如,主机216)可以基于该信用评分310来确定是否向存储控制节点210发送数据访问请求。以此方式,主机可以调整向存储控制节点发送数据访问请求的时间,因而避免在存储控制节点中出现因资源短缺而造成的响应效率底下以及不得不取消已经开始执行的数据访问请求的情况。在此实施方式中,存储***例如可以是VNX存储***。
在下文中将参见图4至图7详细描述用于管理数据访问的方法的具体细节。图4示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的方法的流程图400。在步骤S410中,获取所述存储***中的存储控制节点中的可用资源的状态信息。在此步骤中,可用资源可以是与执行数据访问请求相关联的各种资源。例如,可用资源可以包括CPU等计算资源、以及存储器资源(例如,存储控制节点中的诸如DRAM高速缓存,等)。
在步骤S420中,基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分。由于所获得的状态信息是可用资源的状态,因而该状态可以在一定程度上描述当前存储控制节点对于数据访问的处理能力。例如,如果状态信息表示当前存储控制节点处于空闲状态(例如,CPU和存储器均具有大量可用资源),则此时存储控制节点可以处理大量数据访问,因而可以将信用评分设置为较高数值。又例如,如果状态信息表示当前存储控制节点已经高负荷运行(例如,CPU和存储器的大部分资源均被占用),则此时存储控制节点不再适合处理新的数据访问,因而可以将信用评分设置为较低数值。
在步骤S430中,公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。可以将在步骤S420中所获得的信用评分进行公开,以便耦合至存储***的外接主机可以根据信用评分的数值来确定是否向存储***中的存储控制节点发送数据访问请求。
对于传统的存储控制节点而言,当接收到数据访问请求时,则存储控制节点开始执行该数据访问请求并向其分配相应的资源。当在短时间内接收到大量数据访问请求时,很可能会导致存储控制节点中的资源耗尽并且使得存储控制节点的响应速度降低至不能容忍的速度。
不同于现有技术,在本发明的一个实施方式中,当接收到来自主机的数据访问请求时,还可以基于当前的信用评分的数值来确定如何处理该数据访问请求。具体地,响应于接收到来自所述主机的对所述存储***的数据访问请求,确定与所述数据访问请求相关联的处理能力需求;以及根据所述处理能力需求和所述信用评分,调度所述数据访问请求。以此方式,当发现存储控制节点中的可用资源不足以支持所接收的数据访问请求时,则可以延迟执行该数据访问请求。
在本发明的一个实施方式中,根据所述处理能力需求和所述信用评分,调度所述数据访问请求包括以下中的任一项:响应于所述处理能力需求高于所述信用评分,延迟执行所述数据访问请求;以及响应于所述处理能力需求低于或等于所述信用评分,执行所述数据访问请求。在下文中将参见图5描述如何处理数据访问请求的进一步细节。
图5示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问请求的方法的流程图500。在步骤S510中,响应于接收到来自所述主机的对所述存储***的数据访问请求,确定与所述数据访问请求相关联的处理能力需求。处理能力需求通常主要与数据访问请求所涉及的目标数据的大小相关。因而,可以预先设置目标数据大小与所需处理能力相关联的计算方法。例如,可以分别针对CPU资源和存储器资源设置计算公式,以便可以根据该公式获取所接收到的数据访问请求相关联的处理能力需求。在其他实施方式中,根据存储***的具体应用环境的配置,处理能力需求还可能相关于其他的参数。例如,数据访问请求可以涉及多个优先级,则此时还可以根据优先级参数来相应地进行调整。
在步骤S520中,比较处理能力需求与信用评分的数值,以确定当前存储控制节点中是否存在足够的资源来处理该数据访问请求。如果处理能力需求小于信用评分,则表示当前存储控制节点中存在足够的资源,此时操作流程前进至步骤S530,并且执行所接收的数据访问请求。如果处理能力需求小于信用评分,则表示当前存储控制节点中不存在足够的资源,此时操作流程前进至步骤S540,并且延迟执行该数据访问请求。在此实施方式中,可以在存储控制节点处设置等待队列,或者还可以向发出数据访问请求的主机返回拒绝信号。
在本发明的一个实施方式中,获取所述存储***中的存储控制节点中的可用资源的状态信息包括:获取所述存储控制节点中的计算资源和高速缓存资源的性能中的至少任一项;以及基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分包括:将所述信用评分设置为正比于所述计算资源和所述高速缓存资源的所述性能中的所述至少任一项。
在此实施方式中,可用资源可以包括存储控制节点的计算资源和高速缓存资源两方面。具体地,计算资源可以相关于存储控制节点中的CPU中核的数量、CPU的速度等。而高速缓存资源可以相关于存储控制节点中的数据块被冲刷至存储***中的存储设备的速度。例如,信用评分中有关计算资源方面的分量Creditcomputing可以用如下公式1表示:
Creditcomputing=f1(cpu_core_num)·f2(cpu_speed) 公式1
其中f1表示与CPU的速度“cpu_core_num”成正比的函数,而f2表示与CPU中核的数量“cpu_speed”成正比的函数。在此实施方式中,本领域技术人员可以根据统计数据来设计两个函数f1和f2的具体计算方法。
在本发明的一个实施方式中,所述可用资源的状态信息包括高速缓存资源的性能,以及获取所述存储控制节点中的所述高速缓存资源的所述性能包括:获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间;以及将所述高速缓存资源的所述性能设置为反比于所述回收时间。
当数据被写入存储控制节点中的高速缓存时,由于存储控制节点可能会正在执行其他的任务,因而通常被写入的数据需要等待一段时间后才能被冲刷至存储控制节点的存储设备。等待时间越长,则高速缓存的对于新的数据访问请求的响应时间越长,因而此时将所述高速缓存资源的所述性能设置为反比于所述回收时间。
在本发明的一个实施方式中,获取回收所述存储控制节点中的已占用高速缓存资源的回收时间包括:基于脏数据块在所述存储***中的高速缓存中的潜在驻留时间、以及将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间中的至少任一项,计算所述回收时间。由于脏数据在冲刷在高速缓存中驻留得越久则回收时间越长,因而回收时间与上述驻留时间成正比;另外,冲刷动作占用的时间越久则回收时间越长,因而回收时间与上述冲刷时间成正比。在此实施方式中,驻留时间和冲刷时间可以基于历史经验值来获得。
在本发明的一个实施方式中,获取回收所述存储控制节点中的已占用高速缓存资源的回收时间进一步包括:基于所述存储***中的脏数据块的数量,计算所述回收时间。由于脏数据块越多,则需要的回收时间越多,因而回收时间与脏数据块的数量成正比。
存储***可以经由存储控制节点来被访问。在典型的激活-激活(Active-Active,也称为双激活)类型的存储***中,两个存储控制控制节点一起工作以便处理针对存储***执行数据访问操作,进而提供更高的可用性和更好的性能。每个存储控制节点具有自身的存储器(例如,高速缓存),并且两个存储控制器中的存储器以镜像方式操作。两个存储控制节点可以并行地接收来自外界的数据访问指令,此时两个存储控制节点之间需要同步,以确保数据一致性。下文将参见图2的示例描述两个存储控制节点之间的同步操作的细节。
返回图2,另一存储控制节点220包括控制器222和相对应的存储器224,并且以类似于存储控制器210的方式操作。两个存储控制器210、220可以并行地操作,用来处理不同的访问请求。应当注意,图2所示的存储器214和224可以是镜像存储器,并且两者中包括的相对应的镜像页面中的数据是相对应的。具体而言,如果控制器210在处理写操作期间修改了存储器214中的存储页面A中的数据(存储页面的状态为“脏”),则“脏”数据的内容需要被复制到另一存储器224中的与存储页面A相对应的镜像页面A’中,以便确保两个存储器214和224中数据的同步。
此时,脏数据块不但涉及相关于当前的存储控制节点接收到的数据访问请求的脏数据块,还可以涉及到与另一存储控制节点同步时产生的脏数据块。在本发明的一个实施方式中,获取回收所述存储控制节点中的已占用高速缓存资源的回收时间进一步包括:基于所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,计算所述回收时间。
因而,在本发明的实施方式中,可以按照公式2来计算信用评分中与回收时间相关联的分量Creditrecycling
Creditrecycling_time
=f3(residing_time)·f4(flushing_time)·f5(dirty_num)·f6(dirty_syn_num) 公式2
其中f3表示与脏数据块在所述存储***中的高速缓存中的潜在驻留时间“residing_time”成正比的函数,f4表示与将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间“flushing_time”成正比的函数,其中f5表示与所述存储***中的脏数据块的数量“dirty_num”成正比的函数,其中f6表示与所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量“dirty_syn_num”成正比的函数。在此实施方式中,本领域技术人员可以根据统计数据来设计函数f3至f6的具体计算方法。
在本发明的一个实施方式中,所述可用资源的状态信息包括高速缓存资源的性能,以及获取所述存储控制节点中的所述高速缓存资源的所述性能包括:基于用于回收所述存储控制节点中的已占用高速缓存资源的回收计划,计算所述高速缓存资源的所述性能。由于回收计划相关于脏数据被回收的效率,因而还可以基于等待队列的长度来确定高速缓存资源的性能。
在本发明的一个实施方式中,基于用于回收所述存储控制节点中的已占用高速缓存资源的回收计划,计算所述高速缓存资源的所述性能包括:获取指示所述已占用高速缓存中的、等待被冲刷至所述存储***的存储设备的脏数据块的至少一个队列的长度;以及将所述高速缓存资源的所述性能设置为正比于所述至少一个队列的长度计算。在此实施方式中,在存储控制节点中可以包括基于不同优先级的多个队列,队列长度越长则表示待冲刷的数据块越多,高速缓存中已占用部分中将被回收的空间越多。因而可以将高速缓存资源的性能设置为与队列的长度成正比。具体地,可以基于公式3来计算信用评分中与回收计划相关的分量Creditrecyclin_gplan
Creditrecycling_plan=f7(queue_length) 公式3
其中f7表示与指示所述已占用高速缓存中的、等待被冲刷至所述存储***的存储设备的脏数据块的队列的长度“queue_length”成正比的函数。在此实施方式中,本领域技术人员可以根据统计数据来设计f7的具体计算方法。
组合上文所述的由公式1-3描述的三方面因素,信用评分Credit可以采用以下公式4来描述:
Credit=Creditcomputing·Creditrecycling_time·Creditrecycling_plan
=f1(cpu_core_num)·f2(cpu_speed)·f3(residing_time)·f4(flushing_time)
·f5(dirty_num)·f6(dirty_syn_num)·f7(queue_length) 公式4
根据本发明的实施方式,主机可以基于存储控制节点所公开的信用评分,确定何时向存储控制节点发送数据访问请求,以便更加有效地利用存储控制节点中的可用资源,进而避免存储控制节点因资源耗尽等原因出现处理效率底下的情况。
在本发明的一个实施方式中,提出了一种用于在存储***中管理数据访问的方法,包括:接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力;以及基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。
图6示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的方法的流程图600。在步骤S610中,接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力。在此实施方式中,所接收的信用评分即为在上文中参见附图4描述的方法所公开的信用评分。在步骤S620中,基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。在此步骤中主机可以基于存储控制节点所公开的信用评分,确定何时向存储控制节点发送数据访问请求。
由于主机处的数据访问请求的数量是与未来的某个时间段相关的,因而可以针对未来的某个预定时间段来确定如何处理数据访问请求。在本发明的一个实施方式中,基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求包括:针对预定时间段,获取在所述预定时间段内的所述数据访问请求所涉及的处理能力需求;以及根据所述处理能力需求和所述信用评分调整所述数据访问请求。
在本发明的一个实施方式中,根据所述处理能力需求和所述信用评分调整所述数据访问请求包括以下中的任一项:响应于所述处理能力需求高于所述信用评分,延迟向所述存储控制节点发送所述数据访问请求;以及响应于所述处理能力需求低于或等于所述信用评分,向所述存储控制节点发送所述数据访问请求。
现在将参见图7详细描述具体细节,图7示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问请求的方法的流程图700。在步骤S710中,获取在所述预定时间段内的所述数据访问请求所涉及的处理能力需求。在此步骤中,由于处理能力需求相关于数据访问请求所涉及的数据量,因而可以采用类似于上文所述的方法来获取处理能力需求。继而,在步骤S720中,比较处理能力需求与信用评分。当处理能力需求大于信用评分时,则流程前进至步骤S740,并且延迟向存储控制节点发送数据访问请求;当处理能力需求小于信用评分时,则流程前进至步骤S730,并且向存储控制节点发送数据访问请求。
在本发明的一个实施方式中,进一步包括:向所述存储控制节点发送所述处理能力需求,以通知所述存储控制节点调度所述存储控制节点处的可用资源。在此实施方式中,由于主机可以预先预测数据访问请求的类型和所涉及的数据量,因而可以预先向存储控制节点告知自身的处理能力需求,以通知存储控制节点预先为即将到来的数据访问请求准备所需的资源。
在本发明的一个实施方式中,存储控制节点在接收到处理能力需求的通知后,可以预先调度存储控制节点处的各种资源,例如,将脏数据冲刷至存储设备、为优先级更高的数据访问请求预留计算资源和高速缓存资源等等。
在本发明的一个实施方式中,本领域技术人员可以基于具体应用环境的配置来传输信用评分(例如,在VNX存储***中,可以基于各种原语来实现)。输入/输出请求包(I/ORequest Packet,缩写IRP)是用于描述I/O请求的核心结构。通过使用IRP,可以在存储控制节点的上层结构与底层的存储设备之间进行通信。在本发明的一个实施方式中,可以在DRAM高速缓存和上层结构之间定义新的原语:IOCTL_CACHE_CREDIT_DATA。例如,可以以如下方式实现:
应当注意,在上文中仅仅示意性示出了用于传输信用评分的一个具体示例。本领域技术人员可以根据存储***的具体配置来采用其他方式实现。
图8A示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的设备的框图。如图8A所示,提供了一种用于在存储***中管理数据访问的设备800A,包括:获取模块810A,配置用于获取所述存储***中的存储控制节点中的可用资源的状态信息;确定模块820A,配置用于基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;以及公开模块830A,配置用于公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。
在本发明的一个实施方式中,进一步包括:需求确定模块,配置用于响应于接收到来自所述主机的对所述存储***的数据访问请求,确定与所述数据访问请求相关联的处理能力需求;以及调度模块,配置用于根据所述处理能力需求和所述信用评分,调度所述数据访问请求。
在本发明的一个实施方式中,所述调度模块进一步配置用于:响应于所述处理能力需求高于所述信用评分,延迟执行所述数据访问请求;以及响应于所述处理能力需求低于或等于所述信用评分,执行所述数据访问请求。
在本发明的一个实施方式中,所述获取模块810A进一步配置用于:获取所述存储控制节点中的计算资源和高速缓存资源的性能中的至少任一项;以及所述确定模块820A进一步配置用于:将所述信用评分设置为正比于所述计算资源和所述高速缓存资源的所述性能中的所述至少任一项。
在本发明的一个实施方式中,所述可用资源的状态信息包括高速缓存资源的性能,以及所述获取模块810A进一步配置用于:获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间;以及将所述高速缓存资源的所述性能设置为反比于所述回收时间。
在本发明的一个实施方式中,所述获取模块810A进一步配置用于:基于脏数据块在所述存储***中的高速缓存中的潜在驻留时间以及将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间中的至少任一项,计算所述回收时间。
在本发明的一个实施方式中,所述获取模块810A进一步配置用于:基于所述存储***中的脏数据块的数量,计算所述回收时间。
在本发明的一个实施方式中,所述获取模块810A进一步配置用于:基于所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,计算所述回收时间。
在本发明的一个实施方式中,所述可用资源的状态信息包括高速缓存资源的性能,以及所述获取模块810A进一步配置用于:基于用于回收所述存储控制节点中的已占用高速缓存资源的回收计划,计算所述高速缓存资源的所述性能。
在本发明的一个实施方式中,所述获取模块810A进一步配置用于:获取指示所述已占用高速缓存中的、等待被冲刷至所述存储***的存储设备的脏数据块的至少一个队列的长度;以及将所述高速缓存资源的所述性能设置为正比于所述至少一个队列的长度计算。
图8B示意性示出了根据本发明的一个实施方式的用于管理存储***中的数据访问的设备的框图。如图8B所示,提供了一种用于在存储***中管理数据访问的设备,包括:接收模块810B,配置用于接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力;以及调整模块820B,配置用于基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。
在本发明的一个实施方式中,所述调整模块820B进一步配置用于:针对预定时间段,获取在所述预定时间段内的所述数据访问请求所涉及的处理能力需求;以及根据所述处理能力需求和所述信用评分调整所述数据访问请求。
在本发明的一个实施方式中,所述调整模块820B进一步配置用于:响应于所述处理能力需求高于所述信用评分,延迟向所述存储控制节点发送所述数据访问请求;以及响应于所述处理能力需求低于或等于所述信用评分,向所述存储控制节点发送所述数据访问请求。
在本发明的一个实施方式中,进一步包括:发送模块,配置用于向所述存储控制节点发送所述处理能力需求,以通知所述存储控制节点调度所述存储控制节点处的可用资源。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的***,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法:获取所述存储***中的存储控制节点中的可用资源的状态信息;基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;以及公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:响应于接收到来自所述主机的对所述存储***的数据访问请求,确定与所述数据访问请求相关联的处理能力需求;以及根据所述处理能力需求和所述信用评分,调度所述数据访问请求。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:响应于所述处理能力需求高于所述信用评分,延迟执行所述数据访问请求;以及响应于所述处理能力需求低于或等于所述信用评分,执行所述数据访问请求。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:获取所述存储控制节点中的计算资源和高速缓存资源的性能中的至少任一项;以及将所述信用评分设置为正比于所述计算资源和所述高速缓存资源的所述性能中的所述至少任一项。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间;以及将所述高速缓存资源的所述性能设置为反比于所述回收时间。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:基于脏数据块在所述存储***中的高速缓存中的潜在驻留时间以及将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间中的至少任一项,计算所述回收时间。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:基于所述存储***中的脏数据块的数量,计算所述回收时间。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:基于所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,计算所述回收时间。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:基于用于回收所述存储控制节点中的已占用高速缓存资源的回收计划,计算所述高速缓存资源的所述性能。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:获取指示所述已占用高速缓存中的、等待被冲刷至所述存储***的存储设备的脏数据块的至少一个队列的长度;以及将所述高速缓存资源的所述性能设置为正比于所述至少一个队列的长度计算。
在本发明的一个实施方式中,提供了一种用于在存储***中管理数据访问的***,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法包括:接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力;以及基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:针对预定时间段,获取在所述预定时间段内的所述数据访问请求所涉及的处理能力需求;以及根据所述处理能力需求和所述信用评分调整所述数据访问请求。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:响应于所述处理能力需求高于所述信用评分,延迟向所述存储控制节点发送所述数据访问请求;以及响应于所述处理能力需求低于或等于所述信用评分,向所述存储控制节点发送所述数据访问请求。
在本发明的一个实施方式中,所述计算机程序指令进一步使得所述***:向所述存储控制节点发送所述处理能力需求,以通知所述存储控制节点调度所述存储控制节点处的可用资源。
附图中的流程图和框图显示了根据本发明的多个实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (8)

1.一种用于在存储***中管理数据访问的方法,包括:
基于脏数据块在所述存储***中的高速缓存中的潜在驻留时间、将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间、所述存储***中的脏数据块的数量、存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,获取所述存储***中的所述存储控制节点中的可用资源的状态信息;
基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;
公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力;
响应于与来自所述主机的对所述存储***的数据访问请求相关联的处理能力需求高于所述信用评分,延迟接收所述数据访问请求,所述数据访问请求是由所述主机向所述存储控制节点发送的以用于访问所述存储***中的存储设备中的数据;
响应于所述处理能力需求低于或等于所述信用评分,接收所述数据访问请求;
获取所述存储***中的所述存储控制节点中的可用资源的状态信息,包括:
基于所述潜在驻留时间、所述潜在冲刷时间、所述存储***中的脏数据块的数量、所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,获取所述存储控制节点中的计算资源和高速缓存资源的性能中的至少任一项;以及
其中基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分包括:
将所述信用评分设置为正比于所述计算资源和所述高速缓存资源的所述性能中的所述至少任一项;
并且其中所述获取所述存储控制节点中的所述高速缓存资源的所述性能包括:
根据下述公式获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间,
Creditrecycling_time=f3(residing_time)*f4(flushing_time)*f5(dirty_num)*
f6(dirty_syn_num),
其中所述Creditrecycling_time表示所述回收时间,所述residing_time表示脏数据块在所述存储***中的高速缓存中的潜在驻留时间,所述f3表示与所述residing_time成正比的函数,所述flushing_time表示将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间,所述f4表示与所述flushing_time成正比的函数,所述dirty_num表示所述存储***中的脏数据块的数量,所述f5表示与所述dirty_num成正比的函数,所述dirty_syn_num表示所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,所述f6表示与所述dirty_syn_num成正比的函数;以及
将所述高速缓存资源的所述性能设置为反比于所述回收时间。
2.根据权利要求1所述的方法,进一步包括:
响应于接收到来自所述主机的对所述存储***的所述数据访问请求,确定与所述数据访问请求相关联的处理能力需求;以及
根据所述处理能力需求和所述信用评分,调度所述数据访问请求。
3.根据权利要求2所述的方法,其中基于用于回收所述存储控制节点中的已占用高速缓存资源的回收计划,计算所述高速缓存资源的所述性能包括:
获取指示所述已占用高速缓存中的、等待被冲刷至所述存储***的存储设备的脏数据块的至少一个队列的长度;以及
将所述高速缓存资源的所述性能设置为正比于所述至少一个队列的长度计算。
4.一种用于在存储***中管理数据访问的***,所述***包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法包括:
基于脏数据块在所述存储***中的高速缓存中的潜在驻留时间、将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间、所述存储***中的脏数据块的数量、存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,获取所述存储***中的所述存储控制节点中的可用资源的状态信息;
基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分;
公开所述信用评分以用于向主机通知所述存储控制节点对于数据访问的处理能力;
响应于与来自所述主机的对所述存储***的数据访问请求相关联的处理能力需求高于所述信用评分,延迟接收所述数据访问请求,所述数据访问请求是由所述主机向所述存储控制节点发送的以用于访问所述存储***中的存储设备中的数据;
响应于所述处理能力需求低于或等于所述信用评分,接收所述数据访问请求;
获取所述存储***中的所述存储控制节点中的可用资源的状态信息,包括:
基于所述潜在驻留时间、所述潜在冲刷时间、所述存储***中的脏数据块的数量、所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,获取所述存储控制节点中的计算资源和高速缓存资源的性能中的至少任一项;以及
其中基于所述状态信息确定描述所述存储控制节点对于数据访问的处理能力的信用评分包括:
将所述信用评分设置为正比于所述计算资源和所述高速缓存资源的所述性能中的所述至少任一项;
并且其中所述获取所述存储控制节点中的所述高速缓存资源的所述性能包括:
根据下述公式获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间,
Creditrecycling_time=f3(residing_time)*f4(flushing_time)*f5(dirty_num)*
f6(dirty_syn_num),
其中所述Creditrecycling_time表示所述回收时间,所述residing_time表示脏数据块在所述存储***中的高速缓存中的潜在驻留时间,所述f3表示与所述residing_time成正比的函数,所述flushing_time表示将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间,所述f4表示与所述flushing_time成正比的函数,所述dirty_num表示所述存储***中的脏数据块的数量,所述f5表示与所述dirty_num成正比的函数,所述dirty_syn_num表示所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,所述f6表示与所述dirty_syn_num成正比的函数;以及
将所述高速缓存资源的所述性能设置为反比于所述回收时间。
5.根据权利要求4所述的***,其中所述计算机程序指令进一步使得所述***:
响应于接收到来自所述主机的对所述存储***的所述数据访问请求,确定与所述数据访问请求相关联的处理能力需求;以及
根据所述处理能力需求和所述信用评分,调度所述数据访问请求。
6.根据权利要求5所述的***,其中所述计算机程序指令进一步使得所述***:
获取指示所述已占用高速缓存中的、等待被冲刷至所述存储***的存储设备的脏数据块的至少一个队列的长度;以及
将所述高速缓存资源的所述性能设置为正比于所述至少一个队列的长度计算。
7.一种用于在存储***中管理数据访问的方法,包括:
接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力其中所述信用评分通过下述步骤确定:
将所述信用评分设置为正比于计算资源和高速缓存资源的性能中的至少任一项;
获取所述存储控制节点中的所述高速缓存资源的所述性能,包括:根据下述公式获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间,
Creditrecycling_time=f3(residing_time)*f4(flushing_time)*f5(dirty_num)*
f6(dirty_syn_num),
其中所述Creditrecycling_time表示所述回收时间,所述residing_time表示脏数据块在所述存储***中的高速缓存中的潜在驻留时间,所述f3表示与所述residing_time成正比的函数,所述flushing_time表示将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间,所述f4表示与所述flushing_time成正比的函数,所述dirty_num表示所述存储***中的脏数据块的数量,所述f5表示与所述dirty_num成正比的函数,所述dirty_syn_num表示所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,所述f6表示与所述dirty_syn_num成正比的函数;以及
将所述高速缓存资源的所述性能设置为反比于所述回收时间;以及
基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求,所述数据访问请求用于访问所述存储***中的存储设备中的数据,包括:
针对预定时间段,获取在所述预定时间段内的所述数据访问请求所涉及的处理能力需求;
响应于所述处理能力需求高于所述信用评分,延迟向所述存储控制节点发送所述数据访问请求;
响应于所述处理能力需求低于或等于所述信用评分,向所述存储控制节点发送所述数据访问请求;以及
向所述存储控制节点发送所述处理能力需求,以通知所述存储控制节点调度所述存储控制节点处的可用资源。
8.一种用于在存储***中管理数据访问的***,所述***包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法包括:
接收来自所述存储***中的存储控制节点的信用评分,所述信用评分描述所述存储控制节点对于数据访问的处理能力,
其中所述信用评分通过下述步骤确定:
将所述信用评分设置为正比于计算资源和高速缓存资源的性能中的至少任一项;
获取所述存储控制节点中的所述高速缓存资源的所述性能,包括:根据下述公式获取用于回收所述存储控制节点中的已占用高速缓存资源的回收时间,
Creditrecycling_time=f3(residing_time)*f4(flushing_time)*f5(dirty_num)*
f6(dirty_syn_num),
其中所述Creditrecycling_time表示所述回收时间,所述residing_time表示脏数据块在所述存储***中的高速缓存中的潜在驻留时间,所述f3表示与所述residing_time成正比的函数,所述flushing_time表示将脏数据块冲刷至所述存储***中的存储设备的潜在冲刷时间,所述f4表示与所述flushing_time成正比的函数,所述dirty_num表示所述存储***中的脏数据块的数量,所述f5表示与所述dirty_num成正比的函数,所述dirty_syn_num表示所述存储控制节点与所述存储***中的另一存储控制节点之间的同步相关联的脏数据块的数量,所述f6表示与所述dirty_syn_num成正比的函数;以及
将所述高速缓存资源的所述性能设置为反比于所述回收时间;
基于所述信用评分调整将要从主机被发送至所述存储控制节点的数据访问请求,所述数据访问请求用于访问所述存储***中的存储设备中的数据,包括:
针对预定时间段,获取在所述预定时间段内的所述数据访问请求所涉及的处理能力需求;
响应于所述处理能力需求高于所述信用评分,延迟向所述存储控制节点发送所述数据访问请求;
响应于所述处理能力需求低于或等于所述信用评分,向所述存储控制节点发送所述数据访问请求;以及
向所述存储控制节点发送所述处理能力需求,以通知所述存储控制节点调度所述存储控制节点处的可用资源。
CN201610848292.3A 2016-09-23 2016-09-23 用于在存储***中管理数据访问的方法和*** Active CN107870877B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610848292.3A CN107870877B (zh) 2016-09-23 2016-09-23 用于在存储***中管理数据访问的方法和***
US15/712,324 US10846094B2 (en) 2016-09-23 2017-09-22 Method and system for managing data access in storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610848292.3A CN107870877B (zh) 2016-09-23 2016-09-23 用于在存储***中管理数据访问的方法和***

Publications (2)

Publication Number Publication Date
CN107870877A CN107870877A (zh) 2018-04-03
CN107870877B true CN107870877B (zh) 2024-04-23

Family

ID=61686268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610848292.3A Active CN107870877B (zh) 2016-09-23 2016-09-23 用于在存储***中管理数据访问的方法和***

Country Status (2)

Country Link
US (1) US10846094B2 (zh)
CN (1) CN107870877B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019231436A1 (en) * 2018-05-29 2019-12-05 Visa International Service Association System and method for efficiently delivering data to target users
CN110737398B (zh) * 2018-07-20 2023-09-01 伊姆西Ip控股有限责任公司 协调访问操作的方法、设备和计算机程序产品
CN111309254A (zh) * 2020-02-03 2020-06-19 北京字节跳动网络技术有限公司 数据处理方法、装置、可读介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005121956A1 (fr) * 2004-05-11 2005-12-22 France Telecom Systeme et procede d’aide a l’execution d’une fonction ou d’un ensemble de fonctions mises en œuvre par un service de telecommunication
CN101009583A (zh) * 2006-01-24 2007-08-01 华为技术有限公司 预定任务执行方法和管理任务执行方法、及其终端设备
CN101867527A (zh) * 2010-07-06 2010-10-20 重庆大学 基于物理位置的分层Chord路由方法
CN102111337A (zh) * 2011-03-14 2011-06-29 浪潮(北京)电子信息产业有限公司 任务调度方法和***
CN102855198A (zh) * 2012-08-08 2013-01-02 记忆科技(深圳)有限公司 存储装置的控制器及资源优化方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685368B1 (en) * 2006-06-28 2010-03-23 Emc Corporation Methods and apparatus for removing data from a cache
US8522339B2 (en) * 2007-03-02 2013-08-27 Panasonic Corporation Reproducing apparatus, system LSI, and initialization method
US9262346B2 (en) * 2010-06-21 2016-02-16 Hewlett Packard Enterprises Development LP Prioritizing input/outputs at a host bus adapter
US8935493B1 (en) 2011-06-30 2015-01-13 Emc Corporation Performing data storage optimizations across multiple data storage systems
US9047017B1 (en) 2011-12-20 2015-06-02 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers
US9026765B1 (en) 2012-09-11 2015-05-05 Emc Corporation Performing write operations in a multi-tiered storage environment
US9898224B1 (en) 2012-09-12 2018-02-20 EMC IP Holding Company LLC Automatic adjustment of capacity usage by data storage optimizer for data migration
US9251205B2 (en) * 2013-02-21 2016-02-02 International Business Machines Corporation Streaming delay patterns in a streaming environment
US9286336B2 (en) * 2013-03-12 2016-03-15 Sap Se Unified architecture for hybrid database storage using fragments
US9507887B1 (en) 2013-03-13 2016-11-29 EMC IP Holding Company LLC Adaptive techniques for workload distribution across multiple storage tiers
US20160077974A1 (en) * 2014-09-12 2016-03-17 Seagate Technology Llc Adaptive control of write cache size in a storage device
US9703664B1 (en) 2015-06-24 2017-07-11 EMC IP Holding Company LLC Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling
US10075289B2 (en) * 2015-11-05 2018-09-11 Microsoft Technology Licensing, Llc Homomorphic encryption with optimized parameter selection
CN105677575A (zh) * 2015-12-28 2016-06-15 华为技术有限公司 存储器资源管理方法和装置
US10474696B2 (en) * 2016-06-27 2019-11-12 Vmware, Inc. Replication groups for content libraries
US10083123B2 (en) * 2016-08-10 2018-09-25 Vmware, Inc. Page-fault latency directed virtual machine performance monitoring
US10296390B2 (en) * 2016-10-14 2019-05-21 International Business Machines Corporation Feedback mechanism for controlling dispatching work tasks in a multi-tier storage environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005121956A1 (fr) * 2004-05-11 2005-12-22 France Telecom Systeme et procede d’aide a l’execution d’une fonction ou d’un ensemble de fonctions mises en œuvre par un service de telecommunication
CN101009583A (zh) * 2006-01-24 2007-08-01 华为技术有限公司 预定任务执行方法和管理任务执行方法、及其终端设备
CN101867527A (zh) * 2010-07-06 2010-10-20 重庆大学 基于物理位置的分层Chord路由方法
CN102111337A (zh) * 2011-03-14 2011-06-29 浪潮(北京)电子信息产业有限公司 任务调度方法和***
CN102855198A (zh) * 2012-08-08 2013-01-02 记忆科技(深圳)有限公司 存储装置的控制器及资源优化方法

Also Published As

Publication number Publication date
CN107870877A (zh) 2018-04-03
US20180088955A1 (en) 2018-03-29
US10846094B2 (en) 2020-11-24

Similar Documents

Publication Publication Date Title
US11301144B2 (en) Data storage system
US10387202B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
US10552272B2 (en) Maintaining high availability during N-node failover
TWI752066B (zh) 讀寫請求處理方法及裝置
US20200233705A1 (en) Multi-core processor in storage system executing dynamic thread for increased core availability
US8312201B2 (en) Managing memory allocations loans
US9760392B1 (en) Adaptive throttling in hybrid storage environments
US8966130B2 (en) Tag allocation for queued commands across multiple devices
CN108228482B (zh) 用于管理存储***中的缓存设备的方法和***
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
US10505862B1 (en) Optimizing for infrastructure diversity constraints in resource placement
KR102513961B1 (ko) 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법
EP3865992A2 (en) Distributed block storage system, method, apparatus and medium
CN111679914B (zh) 一种内存管理方法、***、计算机设备及存储介质
CN107870877B (zh) 用于在存储***中管理数据访问的方法和***
US11500577B2 (en) Method, electronic device, and computer program product for data processing
US20220066928A1 (en) Pooled memory controller for thin-provisioning disaggregated memory
US9755986B1 (en) Techniques for tightly-integrating an enterprise storage array into a distributed virtualized computing environment
CN105739930A (zh) 一种存储架构及其初始化方法和数据存储方法及管理装置
US20170371707A1 (en) Data analysis in storage system
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
US10776173B1 (en) Local placement of resource instances in a distributed system
CN113031857B (zh) 数据写入方法、装置、服务器及存储介质
US20210149718A1 (en) Weighted resource cost matrix scheduler
CN116401043A (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