CN107515727A - 用于在存储系统中管理存储器的方法和系统 - Google Patents

用于在存储系统中管理存储器的方法和系统 Download PDF

Info

Publication number
CN107515727A
CN107515727A CN201610431589.XA CN201610431589A CN107515727A CN 107515727 A CN107515727 A CN 107515727A CN 201610431589 A CN201610431589 A CN 201610431589A CN 107515727 A CN107515727 A CN 107515727A
Authority
CN
China
Prior art keywords
memory
controller
free
storage
storage system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610431589.XA
Other languages
English (en)
Other versions
CN107515727B (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 Corp
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 Corp filed Critical EMC Corp
Priority to CN201610431589.XA priority Critical patent/CN107515727B/zh
Priority to US15/623,427 priority patent/US10592127B2/en
Publication of CN107515727A publication Critical patent/CN107515727A/zh
Application granted granted Critical
Publication of CN107515727B publication Critical patent/CN107515727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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

Landscapes

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

Abstract

本发明的实施方式涉及用于在存储系统中管理存储器的方法和系统。在一个实施方式中,提供了一种用于在存储系统中管理存储器的方法,存储系统包括第一控制器和第二控制器,该方法包括:接收来自存储系统中的第二控制器的分配请求,该分配请求要求从存储系统中的第一存储器向存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及基于第一存储器的第一使用状态,确定将要从第一存储器向第二存储器分配的可用存储空间的候选数量,其中第一存储器和第二存储器分别关联于第一控制器和第二控制器,以及第一存储器和第二存储器是镜像存储器。在另一实施方式中,提出了一种用于管理存储区域的系统。

Description

用于在存储系统中管理存储器的方法和系统
技术领域
本发明的各实施方式涉及存储管理,更具体地,涉及在存储系统(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)中管理存储器的方法和系统。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。
存储系统可以经由存储控制节点来被访问。在典型的激活-激活(Active-Active,也称为双激活)类型的存储系统中,两个存储控制控制节点一起工作以便处理针对存储系统执行数据访问操作,进而提供更高的可用性和更好的性能。每个存储控制节点具有自身的存储器(例如,高速缓存),并且两个存储控制器中的存储器以镜像方式操作。两个存储控制节点可以并行地接收来自外界的数据访问指令,此时如何确保两个存储控制节点中的存储器的可用存储空间的调度,成为一个研究热点。
发明内容
因而,期望能够开发并实现一种能够有效地管理存储控制节点中的镜像存储器,进而提高存储系统的访问性能的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且在无需针对现有存储系统增加额外硬件设备的情况下以更高的效率来管理存储系统中的存储区域。
在本发明的一个实施方式中,提供了一种用于在存储系统中管理存储器的方法,存储系统包括第一控制器和第二控制器,该方法包括:接收来自存储系统中的第二控制器的分配请求,分配请求要求从存储系统中的第一存储器向存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及基于第一存储器的第一使用状态,确定将要从第一存储器向第二存储器分配的可用存储空间的候选数量,其中第一存储器和第二存储器分别关联于第一控制器和第二控制器,以及第一存储器和第二存储器是镜像存储器。
在本发明的一个实施方式中,提供了一种用于管理存储区域的系统,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行用于在存储系统中管理存储器的方法,所述存储系统包括第一控制器和第二控制器,以及所述方法包括:接收来自存储系统中的第二控制器的分配请求,分配请求要求从存储系统中的第一存储器向存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及基于第一存储器的第一使用状态,确定将要从第一存储器向第二存储器分配的可用存储空间的候选数量,其中第一存储器和第二存储器分别关联于第一控制器和第二控制器,以及第一存储器和第二存储器是镜像存储器。
在本发明的一个实施方式中,提出了一种用于在存储系统中管理存储器的装置,所述存储系统包括第一控制器和第二控制器,所述装置包括:接收模块,配置用于接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及确定模块,配置用于基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。
采用本发明的技术方案,可以有效地管理存储控制节点中的镜像存储器、降低存储系统的响应时间,进而提高存储系统的访问效率。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
图2示意性示出了根据一个技术方案的存储系统的结构示意图;
图3示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的流程图;
图4示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的时序图;
图5示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的流程图;
图6示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的流程图;以及
图7示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图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可以包括控制器212和存储器214(例如,高速缓存)。当存储控制节点210接收到来自外界的数据访问请求时,控制器212处理该请求,并且在存储器214中查找与请求相关联的数据是否已经被加载到存储器214之中。如果相关联的数据已经被装载,则控制节点210可以继续执行数据访问请求;如果在存储器214中并不存在相关联的数据,则需要在存储器214中分配相应的可用存储空间来用于执行该请求。
类似地,另一存储控制节点220也包括控制器222和相对应的存储器224,并且以类似于存储控制器210的方式操作。两个存储控制器210、220可以并行地操作,用来处理不同的数据访问请求。应当注意,图2所示的存储器214和224是镜像存储器,并且两者中包括的相对应的镜像页面中的数据是相对应的。具体而言,如果控制器210在处理写操作期间修改了存储器214中的存储页面A中的数据(存储页面的状态为“脏”),则“脏”数据的内容需要被复制到另一存储器224中的与存储页面A相对应的镜像页面A’中,以便确保两个存储器214和224中数据的一致性。
由于存储系统200中的两个存储器214和224是镜像存储器,当两个控制器212和222同时响应于外界的读写请求时,可能会造成镜像存储器中的可用存储空间不足的情况。目前已经提出了用于回收存储器中的存储空间的技术方案。根据一个技术方案,可以周期性地调用存储空间回收处理,以便释放不再需要的存储空间。然而,此技术方案较多地被应用于具有单一存储控制节点的存储系统,当将该技术方案应用于回收镜像存储器中的存储空间时,需要在两个控制器之间频繁地进行数据交换,因而导致产生额外的通信开销。
在包括第一控制器和第二控制器的存储系统中,两个控制器共享镜像存储器(第一存储器和第二存储器)中的存储空间。基于这一基础,本申请的实施方式提出了一种用于在存储系统中管理存储器的方法,所述存储系统包括第一控制器和第二控制器,所述方法包括:接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。
图3示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的流程图300。在步骤S310中,在包括第一控制器和第二控制器的存储系统中,接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用。本发明的操作流程响应于来自一个控制器(例如,如图3中所示的第二控制器)的分配请求而启动。在此步骤中,分配请求可以是响应于在第二存储器中出现可用存储空间不足的情况而发出的,或者,还可以是响应于其他条件的发出的。
在步骤S320中,基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。在此步骤中,当接收到分配请求时,可以检查第一存储器的使用状态,进而确定如何响应于所接收到的分配请求。例如,如果第一存储器本身已经出现了可用存储空间短缺的情况,则可以拒绝接收到的分配请求;如果第一存储器中的可用存储空间丰富,则可以向第二存储器分配一定数量的可用存储空间。
在下文中,将结合图4描述在存储系统运行期间两个存储控制节点如何管理存储器中的可用存储空间的具体示例。图4示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的时序图400。第一控制器410和第二控制器420分别是存储系统中的两个存储控制节点中的控制器,第一控制器410和第二控制器420分别关联于第一存储器和第二存储器,并且该第一存储器和第二存储器是镜像存储器。
如图4所示,步骤S410-S416示出了存储系统启动期间的操作流程。如步骤S410所示,在存储系统初始化期间第一控制器410首先启动,则在步骤S410期间第一控制器410将占用镜像存储器中的全部存储空间。接着,在步骤S412中第二控制器启动,由于在步骤S410中已经将全部存储空间分配给第一控制器410,则此时第二控制器420需要在步骤S414中请求向其分配可用存储空间(例如,数量为High的存储页面)。继而,在步骤S416中向第二控制器420分配相应数量的存储空间。由于此时存储系统刚刚启动,因而在第二存储器中存在充足的可用存储空间,因而可以向第二控制器420分配所请求数量的可用存储空间。
步骤S418至S424示出了第二控制器420回收本地资源并且向第一控制器410请求资源的过程。启动阶段之后,第一控制器410和第二控制器420可以服务于来自外界的数据访问请求。在经过一段时间之后,例如在与第二控制器420相关联的第二存储器中首先出现了可用存储空间不足的情况,则可以启动回收操作以便回收第二存储器中的存储空间(步骤S418),相继地或者同时地,在步骤S420中,还可以从第一存储器处请求可用存储空间。在步骤S422处,可以检查第一存储器的使用状态。继而在步骤S424处,基于所述第一存储器的使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,并进行分配。
步骤S426至S430示出了存储系统运行期间的其他的可能的操作。两个控制器可以并行地处理来自外界的数据访问请求,并且在任何一个存储器处出现了存储空间短缺时,可以启动本地资源回收过程(例如,步骤S426所示),附加地还可以向另外一个存储器请求分配(在图4中未示出)。并且当一个控制器(例如,第二控制器420)出现故障时(步骤S428),则另一控制器(例如,第一控制器410)可以接管与出现故障的控制器相关联的存储器。
应当注意,上文参见图4示意性示出了存储系统操作期间的步骤的一个具体示例,在其他示例中,可以包括比图4所示的更多或者更少的步骤,并且图4所示的步骤还可以按照不同顺序出现。此外,图4所示的第一控制器和第二控制器还可以交换,例如,当与第一控制器相关联的第一存储器中出现可用存储空间短缺时,第一控制器410可以向第二控制器420发出分配请求。另外,尽管在步骤S416中示出了分配High个存储空间的情况,在其他实施方式中,还可以基于第一存储器的状态来向第二存储器分配相应数量的可用存储资源。
在下文中,将参见图5详细描述如何基于存储器的状态来确定向另一存储器分配可用存储空间的数量。图5示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的流程图500。具体器,该图示出了在第二存储器中出现可用存储空间短缺,并且第二控制器请求向第二存储器分配可用存储空间的情况。在步骤S510中,接收来自存储系统中的第二存储器的分配请求。接着,在步骤S520中确定第一存储器的第一使用状态。在步骤S530-S550中,响应于第一使用状态满足不同的条件(第一条件、第二条件和第三条件),而做出不同的响应。
在本发明的一个实施方式中,其中基于所述第一存储器的所述第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量包括:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第一条件,确定所述候选数量为零。
如图5示出了此实施方式的具体步骤。响应于确定第一存储器的第一使用状态满足第一条件,在步骤S530中,拒绝资源分配请求。在此的第一条件可以是指示第一存储器中本身已经出现可用资源短缺,或者指示在第一存储器中不存在更多的可用存储资源来向第二存储器分配的任何条件。具体地,可以设置预定义的阈值,当第一存储器中的可用存储空间的数量下落至低于该阈值时,则拒绝在先前步骤中接收到的分配请求。
在本发明的一个实施方式中,可以针对第一条件定义具体的阈值。例如,可以定义阈值Low来指示第一存储器中的本地可用存储空间是否短缺。当第一存储器中的本地可用存储空间的数量小于(或者小于等于)阈值Low时,则表示短缺。本领域技术人员可以针对Low给出具体的数值,作为一个示例,该数值可以以第一存储器的总存储空间的百分比来表示,例如,可以将Low定义为5%-10%之间的任何数值,或者还可以定义为其他的数值。作为一个示例,还可以以绝对值的形式来定义Low的大小,例如,当存储器大小为1GB时,low可以定义为50MB-100MB。或者,本领域技术人员还可以采用其他方式来定义第一条件,只要该第一条件可以指示在第一存储器中存在可用存储空间短缺的情况即可。
在本发明的一个实施方式中,所述分配请求包括要求分配的可用存储空间的期望数量,以及其中基于所述第一存储器的所述第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量包括:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第二条件,将所述候选数量设置为所述期望数量。
如图5示出了此实施方式的具体步骤。响应于确定第一存储器的第一使用状态满足第二条件,在步骤S540中,向第二存储器分配所请求数量的可用存储空间。在此的第二条件可以是指示第一存储器中本身可用存储空间充足的信号,或者指示在第一存储器中存在可用存储空间来向第二存储器分配的任何条件。具体地,可以设置预定义的阈值,当第一存储器中的可用存储空间的数量高于该阈值时,则向第二存储器分配所请求数量的可用存储空间。
在本发明的一个实施方式中,可以针对第二条件定义具体的阈值。例如,可以定义阈值High来指示第一存储器中的本地可用存储空间是否充足。当第一存储器中的本地可用存储空间的数量大于(或者大于等于)阈值High时,则表示充足。本领域技术人员可以针对High给出具体的数值,作为一个示例,该数值可以以第一存储器的总存储空间的百分比来表示,例如,可以将High定义为15%-20%之间的任何数值,或者还可以定义为其他的数值。作为一个示例,还可以以绝对值的形式来定义High的大小,例如,当存储器大小为1GB时,High可以定义为150MB-200MB。或者,本领域技术人员还可以采用其他方式来定义第二条件,只要该第二条件可以指示在第一存储器中存在充足的可用存储空间即可。
在本发明的一个实施方式中,基于所述第一存储器的所述第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量包括:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第三条件,确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度;以及基于所述可用空间的短缺程度,设置所述候选数量。
如图5示出了此实施方式的具体步骤。响应于确定第一存储器的第一使用状态满足第三条件,在步骤S550中,向第二存储器分配可用存储空间。在此的第三条件可以是指示第一存储器中的可用存储资源虽然并不十分充足、但还尚未达到资源短缺的程度。因而,在此情况下,可以根据第一存储器本身的情况来向第二存储器分配一定数量的可用存储空间。具体地,可以存在预定义的阈值范围,当第一存储器中的可用存储空间的数量满足该阈值范围时,则向第二存储器分配一定数量的可用存储空间。
在此实施方式中,可以将第三条件定义为在第一存储器中的可用存储空间处于上文的High和Low之间的情况。例如,如果High=20%而Low=10%,则第三条件可以定义如下:第一存储器中的可用存储空间小于20%并且大于10%。在本发明的一个实施方式中,可以针对第三条件定义其他具体的阈值,只要该第三条件可以指示在第一存储器中存在一定数量的可用存储空间用于分配给第二存储器即可。
具体地,在此实施方式中可以根据确定第一存储器和第二存储器中的可用资源的短缺程度的指示符(例如,分别以指示符IndicatorA和IndicatorB来表示),并按照该指示符来确定从第一存储器向第二存储器分配多少可用存储空间。本领域技术人员可以以不同的指标来表示资源短缺程度,例如,可以简单地将第一存储器和第二存储器中的可用资源数量作为短缺程度。在此步骤中,例如,在第一存储器中存在IndicatorA个可用存储空间,而在第二存储器中存在IndicatorB个可用存储空间。当第二控制器发出分配请求时,如果IndicatorA≤IndicatorB,则拒绝分配请求;如果IndicatorA>IndicatorB,则可以基于两个存储器中的资源短缺程度指示符来确定向第二存储器分配多少个存储空间。例如,可以基于比例关系来在第一存储器和第二存储器之间分配(IndicatorA-Low)个可用存储空间。
例如,在第一存储器处保留如下数量的可用存储空间:
并且从第一存储器向第二存储器分配如下数量的可用存储空间:
备选地,还可以基于其他公式来计算可用存储空间的分配比例,本领域技术人员可以基于具体应用环境来设计具体的计算公式。例如,假设第二控制器主要负责处理对于实时性较高的数据访问请求,则此时可以向第二存储器分配更多的可用存储资源。
在上文中的公式1和公式2示意性示出了根据两个存储器处的可用存储空间的数量来进行调度的方法。在存储系统的实际运行过程中,两个存储控制节点接收到的数据访问请求的数量可能并不平均。因而,有可能会出现如下情况:在一个存储控制节点处可用存储空间较低,然而该存储控制节点在很长一段时间并未接收到任何数据访问请求;尽管另一存储控制节点处的可用存储空间较多,然而该存储控制节点已经接收到大量的数据访问请求,并且当前的可用存储空间很快会被耗尽。
针对上述情况,本发明的实施方式还提出了一种各个控制器接收到的数据访问请求来确定可用存储资源分配的技术方案。在本发明的一个实施方式中,确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度包括:根据所述第一控制器接收到的对所述存储系统进行的数据访问请求,确定所述第一存储器中的可用空间的短缺程度;以及根据所述第二控制器接收到的对所述存储系统进行的数据访问请求,确定所述第二存储器中的可用空间的短缺程度。
在此实施方式中,可以简单地将各个控制器接收到的数据访问请求的相关信息来确定可用存储空间的短缺程度。具体地,可以统计各个控制器在特定时间段内接收到的数据访问请求的数量、各个数据访问请求是否需要等待、各个数据访问请求的等待时间等信息,并以此来衡量可用存储空间的短缺程度。
在此实施方式中,可以将统计的数值进行简单地累加来作为最终的短缺程度指示符。例如,假设第一控制器在过去10分钟内接收到的数据访问请求的数量为20次,则可以将20作为第一存储器处的短缺程度指示符。备选地,还可以引用“衰减平均”算法,即将远离当前时间的统计数值赋予较低权重,将靠近当前时间的统计值赋予较高权重。具体而言,例如可以将过去的10-5分钟的权重设置为1,而将过去的5-0分钟的权重设置为2。以此方式,如果在两个时间段内接收到的数据访问请求的数量均为10,则最终的短缺程度指示符=10*1+10*2=30。
又例如,还可以仅统计需要等待的数据访问请求的数量,而忽略立刻被处理而不需要等待的数据访问请求的数量。具体地,假设在过去10-5分钟内收到10个请求,并且其中5个请求需要等待而没有被立刻处理;在过去5-0分钟内收到10个请求,并且其中5个请求需要等待。继续上文示例,当采用“衰减平均”算法时,最终的短缺程度指示符=5*1+5*2=15。
应当注意,在上文中仅以示例方式描述了计算短缺程度指示符的具体示例。在其他实施方式中,还可以测量请求的等待时间,基于本发明的原理,本领域技术人员可以设计具体的计算公式。例如,可以基于具体应用环境来设置用于不同时间段的权重,或者采用其他的算法来获得资源短缺程度的指示符。
在本发明的一个实施方式中,进一步包括:从所述第一存储器向所述第二存储器分配所述候选数量的可用存储空间。在上文中已经描述了如何计算从第一存储器向第二存储器分配的可用存储空间的数量的具体示例,在已经确定了待分配存储空间的数量后,即可向第二存储器分配该数量的可用存储空间。
在本发明的一个实施方式中,所述分配请求是响应于所述第二存储器中的可用存储空间低于第一阈值而发出的。在此实施方式中,不必如现有技术那样周期性地调用释放存储空间的处理,而是可以在存储器中的可用存储空间不足(例如低于第一阈值)时,才唤醒根据本发明的管理存储空间的方法。以此方式,一方面可以降低周期性执行释放时造成工作负荷,另一方面,还可以在存储空间不足时预先释放本地存储空间和/或向另一存储器请求可用存储空间,进而保障可用存储空间的数量维持在充足状态。
图6示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的方法的流程图600。如图6所示的方法适用于在存储系统中的任何存储控制节点处执行,既可以在第一存储控制节点处执行,也可以在第二存储控制节点处执行。具体地仅以第一存储控制节点为示例来描述图6。在步骤S610中,检测在第一存储器处的可用存储空间的数量。在步骤S620中,当发现第一存储器处的可用存储空间低于第一阈值(例如,High值)时,则操作前进至步骤S630和S640。在此步骤中,可以回收本地存储空间,备选地和/或附加地,可以向另一存储器发出请求。本领域技术人员可以理解,尽管在图6中以顺序方式示出了步骤S630和S640,在具体应用环境中,这两个步骤可以以相反的顺序执行,或者还可以并行地执行。
在本发明的一个实施方式中,进一步包括:响应于所述第二控制器掉线,接管所述第二存储器中的存储空间。在此实施方式中,当两个控制器中的任意一个发生故障并且掉线时,正常运行的另一控制器可以接管与掉线控制器相关联的存储器。具体地,当第二控制器掉线时,则第一控制器可以接管第二存储器中的存储空间。此时,第一存储器和第二存储器不再是镜像存储器,而是如同常规存储器来操作。应当注意,尽管上文中仅描述了第二控制器掉线的情况,当第一控制器掉线时,第二控制器可以接管第一存储器中的存储空间。
在本发明的一个实施方式中,当掉线的控制器重新启动并且再次连接到存储系统时,则该重新启动的控制器可以向正常运行的控制器请求分配可用存储空间(例如,数量为High)。继而,该正常运行的控制器可以根据上文所述的方法,来确定向重新启动的控制器分配多少可用存储空间。
当任一存储器中出现可用存储空间不足的情况时,一方面可以向另一存储器请求分配可用存储空间,另一方面,还可以回收当前存储器的本地存储空间。在下文中详细描述如何回收本地存储空间。在本发明的一个实施方式中,进一步包括:响应于所述第一使用状态指示所述第一存储器中的可用存储空间低于第一阈值,确定所述第一存储器中的已占用空间中的存储页面的状态;以及根据所述存储页面的状态释放所述存储页面。在此实施方式中,当存储器本地的可用存储空间低于第一阈值(例如,High值)时,可以检查本地存储器的状态并且释放本地存储器中的不再需要的存储空间。以此方式,在向另一存储器请求可用存储空间的同时,还可以通过释放存储器本地的存储空间,来缓解存储器中的可用资源短缺的问题。
在本发明的一个实施方式中,根据所述存储页面的状态释放所述存储页面包括以下中的任一项:响应于所述存储页面的所述状态为“清洁(clean)”,释放所述存储页面;以及响应于所述存储页面的所述状态为“脏(dirty)”,将所述存储页面中的数据冲刷(flush)至所述存储系统中与所述存储页面相对应的存储地址,以及释放所述存储页面。
当本地存储空间的存储页面为“清洁”时,则表示该存储页面中的数据已经被冲刷至磁盘,因而此时该存储页面可以被直接释放。当本地存储空间中的存储页面为“脏”时,则表示该存储页面中的数据尚未被冲刷至磁盘。此时需要首先将存储页面中的数据冲刷至磁盘,继而再执行回收操作。在本发明的上下文中,第一存储器和第二存储器是镜像存储器,因而需要基于存储页面的状态来确定释放算法。在镜像存储器中,存储页面是镜像的存储页面,即,第一存储器中的一个页面和第二存储器中的相应页面构成一个镜像的配对。在此实施方式中,释放是针对两个存储器中的镜像存储页面来执行的。
通过区分“清洁”和“脏”的状态来执行不同的回收测量,一方面可以保证存储器中的数据与磁盘中的数据的一致性,一方面还可以回收已经不再需要的存储空间。
图7示意性示出了根据本发明的一个实施方式的用于在存储系统中管理存储器的装置的框图700。如图7所示,提出了一种用于在存储系统中管理存储器的装置,所述存储系统包括第一控制器和第二控制器,所述装置包括:接收模块710,配置用于接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间;以及确定模块720,配置用于基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。
在本发明的一个实施方式中,所述分配请求是响应于所述第二存储器中的可用存储空间低于第一阈值而发出的。
在本发明的一个实施方式中,所述确定模块包括:第一确定模块,配置用于响应于所述第一使用状态指示所述第一存储器中的可用空间满足第一条件,确定所述候选数量为零。
在本发明的一个实施方式中,所述分配请求包括要求分配的可用存储空间的期望数量,以及所述确定模块包括:第二确定模块,配置用于响应于所述第一使用状态指示所述第一存储器中的可用空间满足第二条件,将所述候选数量设置为所述期望数量。
在本发明的一个实施方式中,所述确定模块包括:第三确定模块,配置用于响应于所述第一使用状态指示所述第一存储器中的可用空间满足第三条件,确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度;以及第三设置模块基于所述可用空间的短缺程度,设置所述候选数量。
在本发明的一个实施方式中,所述第三确定模块包括:程度确定模块,配置用于根据所述第一控制器接收到的对所述存储系统进行的数据访问请求,确定所述第一存储器中的可用空间的短缺程度;以及根据所述第二控制器接收到的对所述存储系统进行的数据访问请求,确定所述第二存储器中的可用空间的短缺程度。
在本发明的一个实施方式中,进一步包括分配模块,配置用于从所述第一存储器向所述第二存储器分配所述候选数量的可用存储空间。
在本发明的一个实施方式中,进一步包括接管模块,配置用于响应于所述第二控制器掉线,接管所述第二存储器中的存储空间。
在本发明的一个实施方式中,进一步包括状态确定模块,配置用于响应于所述第一使用状态指示所述第一存储器中的可用存储空间低于第一阈值,确定所述第一存储器中的已占用空间中的存储页面的状态;以及释放模块,配置用于根据所述存储页面的状态释放所述存储页面。
在本发明的一个实施方式中,所述释放模块进一步配置用于响应于所述存储页面的所述状态为“清洁”,释放所述存储页面;以及响应于所述存储页面的所述状态为“脏”,将所述存储页面中的数据冲刷至所述存储系统中与所述存储页面相对应的存储地址,以及释放所述存储页面。
在本发明的一个实施方式中,提供了一种用于管理存储区域的系统,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行用于在存储系统中管理存储器的方法,所述存储系统包括第一控制器和第二控制器,以及所述方法包括:接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间;以及基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。
在本发明的一个实施方式中,所述分配请求是响应于所述第二存储器中的可用存储空间低于第一阈值而发出的。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第一条件,确定所述候选数量为零。
在本发明的一个实施方式中,所述分配请求包括要求分配的可用存储空间的期望数量,以及其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第二条件,将所述候选数量设置为所述期望数量。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第三条件,确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度;以及基于所述可用空间的短缺程度,设置所述候选数量。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:根据所述第一控制器接收到的对所述存储系统进行的数据访问请求,确定所述第一存储器中的可用空间的短缺程度;以及根据所述第二控制器接收到的对所述存储系统进行的数据访问请求,确定所述第二存储器中的可用空间的短缺程度。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:从所述第一存储器向所述第二存储器分配所述候选数量的可用存储空间。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第二控制器掉线,接管所述第二存储器中的存储空间。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用存储空间低于第一阈值,确定所述第一存储器中的已占用空间中的存储页面的状态;以及根据所述存储页面的状态释放所述存储页面。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述存储页面的所述状态为“清洁”,释放所述存储页面;以及响应于所述存储页面的所述状态为“脏”,将所述存储页面中的数据冲刷至所述存储系统中与所述存储页面相对应的存储地址,以及释放所述存储页面。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (20)

1.一种用于在存储系统中管理存储器的方法,所述存储系统包括第一控制器和第二控制器,所述方法包括:
接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及
基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,
其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。
2.根据权利要求1所述的方法,其中所述分配请求是响应于所述第二存储器中的可用存储空间低于第一阈值而发出的。
3.根据权利要求1或2所述的方法,其中基于所述第一存储器的所述第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量包括:
响应于所述第一使用状态指示所述第一存储器中的可用空间满足第一条件,确定所述候选数量为零。
4.根据权利要求1或2所述的方法,其中所述分配请求包括要求分配的可用存储空间的期望数量,以及其中基于所述第一存储器的所述第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量包括:
响应于所述第一使用状态指示所述第一存储器中的可用空间满足第二条件,将所述候选数量设置为所述期望数量。
5.根据权利要求1或2所述的方法,其中基于所述第一存储器的所述第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量包括:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第三条件,
确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度;以及
基于所述可用空间的短缺程度,设置所述候选数量。
6.根据权利要求5所述的方法,其中确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度包括:
根据所述第一控制器接收到的对所述存储系统进行的数据访问请求,确定所述第一存储器中的可用空间的短缺程度;以及
根据所述第二控制器接收到的对所述存储系统进行的数据访问请求,确定所述第二存储器中的可用空间的短缺程度。
7.根据权利要求1或2所述的方法,进一步包括:
从所述第一存储器向所述第二存储器分配所述候选数量的可用存储空间。
8.根据权利要求1或2所述的方法,进一步包括:响应于所述第二控制器掉线,接管所述第二存储器中的存储空间。
9.根据权利要求1或2所述的方法,进一步包括:响应于所述第一使用状态指示所述第一存储器中的可用存储空间低于第一阈值,
确定所述第一存储器中的已占用空间中的存储页面的状态;以及
根据所述存储页面的状态释放所述存储页面。
10.根据权利要求9所述的方法,其中根据所述存储页面的状态释放所述存储页面包括以下中的任一项:
响应于所述存储页面的所述状态为“清洁”,释放所述存储页面;以及
响应于所述存储页面的所述状态为“脏”,将所述存储页面中的数据冲刷至所述存储系统中与所述存储页面相对应的存储地址,以及释放所述存储页面。
11.一种用于管理存储区域的系统,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行用于在存储系统中管理存储器的方法,所述存储系统包括第一控制器和第二控制器,以及所述方法包括:
接收来自所述存储系统中的第二控制器的分配请求,所述分配请求要求从所述存储系统中的第一存储器向所述存储系统中的第二存储器分配可用存储空间来由所述第二控制器使用;以及
基于所述第一存储器的第一使用状态,确定将要从所述第一存储器向所述第二存储器分配的可用存储空间的候选数量,
其中所述第一存储器和所述第二存储器分别关联于所述第一控制器和所述第二控制器,以及所述第一存储器和所述第二存储器是镜像存储器。
12.根据权利要求1所述的系统,其中所述分配请求是响应于所述第二存储器中的可用存储空间低于第一阈值而发出的。
13.根据权利要求11或12所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第一条件,确定所述候选数量为零。
14.根据权利要求11或12所述的系统,其中所述分配请求包括要求分配的可用存储空间的期望数量,以及其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:
响应于所述第一使用状态指示所述第一存储器中的可用空间满足第二条件,将所述候选数量设置为所述期望数量。
15.根据权利要求11或12所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用空间满足第三条件,
确定所述第一存储器以及所述第二存储器中的可用空间的短缺程度;以及
基于所述可用空间的短缺程度,设置所述候选数量。
16.根据权利要求15所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:
根据所述第一控制器接收到的对所述存储系统进行的数据访问请求,确定所述第一存储器中的可用空间的短缺程度;以及
根据所述第二控制器接收到的对所述存储系统进行的数据访问请求,确定所述第二存储器中的可用空间的短缺程度。
17.根据权利要求11或12所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:
从所述第一存储器向所述第二存储器分配所述候选数量的可用存储空间。
18.根据权利要求11或12所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第二控制器掉线,接管所述第二存储器中的存储空间。
19.根据权利要求11或12所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:响应于所述第一使用状态指示所述第一存储器中的可用存储空间低于第一阈值,
确定所述第一存储器中的已占用空间中的存储页面的状态;以及
根据所述存储页面的状态释放所述存储页面。
20.根据权利要求19所述的系统,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述系统:
响应于所述存储页面的所述状态为“清洁”,释放所述存储页面;以及
响应于所述存储页面的所述状态为“脏”,将所述存储页面中的数据冲刷至所述存储系统中与所述存储页面相对应的存储地址,以及释放所述存储页面。
CN201610431589.XA 2016-06-16 2016-06-16 用于在存储系统中管理存储器的方法和系统 Active CN107515727B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610431589.XA CN107515727B (zh) 2016-06-16 2016-06-16 用于在存储系统中管理存储器的方法和系统
US15/623,427 US10592127B2 (en) 2016-06-16 2017-06-15 Method and system for allocating mirrored memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610431589.XA CN107515727B (zh) 2016-06-16 2016-06-16 用于在存储系统中管理存储器的方法和系统

Publications (2)

Publication Number Publication Date
CN107515727A true CN107515727A (zh) 2017-12-26
CN107515727B CN107515727B (zh) 2020-09-25

Family

ID=60660074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610431589.XA Active CN107515727B (zh) 2016-06-16 2016-06-16 用于在存储系统中管理存储器的方法和系统

Country Status (2)

Country Link
US (1) US10592127B2 (zh)
CN (1) CN107515727B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535069A (zh) * 2020-04-22 2021-10-22 联想企业解决方案(新加坡)有限公司 数据存储系统、计算设备及数据存储系统的构建方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307160A1 (en) * 2004-12-29 2008-12-11 Humlicek Donald R Methods and structure for improved storage system performance with write-back caching for disk drives
CN103699496A (zh) * 2012-09-27 2014-04-02 株式会社日立制作所 分级存储器管理

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307160A1 (en) * 2004-12-29 2008-12-11 Humlicek Donald R Methods and structure for improved storage system performance with write-back caching for disk drives
CN103699496A (zh) * 2012-09-27 2014-04-02 株式会社日立制作所 分级存储器管理

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535069A (zh) * 2020-04-22 2021-10-22 联想企业解决方案(新加坡)有限公司 数据存储系统、计算设备及数据存储系统的构建方法

Also Published As

Publication number Publication date
CN107515727B (zh) 2020-09-25
US10592127B2 (en) 2020-03-17
US20170364283A1 (en) 2017-12-21

Similar Documents

Publication Publication Date Title
US10534542B2 (en) Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
AU2017387062B2 (en) Data storage system with redundant internal networks
AU2017387063B2 (en) Data storage system with multiple durability levels
CN103098014B (zh) 存储系统
US20170017524A1 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
CN102081574B (zh) 用于加快系统的唤醒时间的方法和系统
US10394606B2 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US20100161897A1 (en) Metadata server and disk volume selecting method thereof
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN108228482A (zh) 用于管理存储系统中的缓存设备的方法和系统
CN112749135B (zh) 文件系统的存储空间的平衡的方法、设备和计算机程序产品
CN102982182A (zh) 一种数据存储规划方法及装置
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
JP2012027656A (ja) ディザスタリカバリシステムのための管理装置、方法及びプログラム
CN103903295A (zh) 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
CN112099728A (zh) 一种执行写操作、读操作的方法及装置
CN107515727A (zh) 用于在存储系统中管理存储器的方法和系统
CN104503924A (zh) 一种分层存储系统中的区域分配方法及装置
CN107870877B (zh) 用于在存储系统中管理数据访问的方法和系统
CN114860387B (zh) 一种面向虚拟化存储应用的hba控制器i/o虚拟化方法
US11983578B2 (en) Provisioning a computing subsystem including disaggregated hardware resources that comply with a power domain requirement for a workload
CN103685359A (zh) 数据处理方法及装置
CN105577825A (zh) 保证在线联机服务可用性的方法及装置
CN109558214B (zh) 异构环境下宿主机资源管理方法、装置和存储介质
CN101556575B (zh) 一种自动分配独立冗余磁盘阵列带宽的方法及装置

Legal Events

Date Code Title Description
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: 20200413

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant