CN107515723B - 用于管理存储***中的存储器的方法和*** - Google Patents

用于管理存储***中的存储器的方法和*** Download PDF

Info

Publication number
CN107515723B
CN107515723B CN201610428405.4A CN201610428405A CN107515723B CN 107515723 B CN107515723 B CN 107515723B CN 201610428405 A CN201610428405 A CN 201610428405A CN 107515723 B CN107515723 B CN 107515723B
Authority
CN
China
Prior art keywords
memory
controller
access request
storage
additional
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
CN201610428405.4A
Other languages
English (en)
Other versions
CN107515723A (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 CN201610428405.4A priority Critical patent/CN107515723B/zh
Priority to US15/623,442 priority patent/US10437471B2/en
Publication of CN107515723A publication Critical patent/CN107515723A/zh
Application granted granted Critical
Publication of CN107515723B publication Critical patent/CN107515723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0688Non-volatile semiconductor memory arrays
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

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)
  • Quality & Reliability (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示意性示出了根据本发明的一个实施方式的用于在存储***中管理存储器的架构图;以及
图8示意性示出了根据本发明的一个实施方式的用于管理存储***中的存储器的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图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中并不存在相关联的数据(未命中,miss),则需要在存储器214中分配相应的可用存储空间来用于执行该请求。
类似地,另一存储控制节点220包括控制器222和相对应的存储器224,并且以类似于存储控制器210的方式操作。两个存储控制器210、220可以并行地操作,用来处理不同的访问请求。应当注意,图2所示的存储器214和224是镜像存储器,并且两者中包括的相对应的镜像页面中的数据是相对应的。具体而言,如果控制器210在处理写操作期间修改了存储器214中的存储页面A中的数据(存储页面的状态为“脏”),则“脏”数据的内容需要被复制到另一存储器224中的与存储页面A相对应的镜像页面A’中,以便确保两个存储器214和224中数据的一致性。
存储***200中的两个存储器214和224是镜像存储器,两个控制器212和222可以同时响应于外界的访问请求。如图2所示,如箭头A所示,存储控制节点210接收来自外界的主机的访问请求(例如,写请求),继而在存储器214中分配存储空间来服务于该访问请求。在如图2所示的示例中,由于存储器214和224是镜像存储器,因而存储器214需要向存储器224发送消息以告知有关所分配的存储空间的元数据的信息(如箭头B所示),继而,存储器224需要向存储器214返回应答信息(如箭头C所示)。之后,在如箭头D所示的步骤中,需要在存储器214和224之间拷贝与访问请求相关联的数据,以确保存储器214和224之间的数据的匹配。最后,在存储器214接收到拷贝完成的消息(如箭头E所示)之后,才能向外部的主机返回访问请求已经完成的应答(如箭头F所示)。
按照图2所示的技术方案,在两个存储器214和224之间的数据通信(例如,箭头B-E所示),并且尤其是步骤D-E的数据拷贝操作将占用较多的时间,这将造成外部主机需要等待较长时间的情况。因而,如何降低在两个存储器214和224之间的数据传输量进而降低等待时间,成为一个研究热点。
在本发明的一个实施方式中,提出了一种用于管理存储***中的存储器的技术方案。具体地,在存储控制节点中设置附加存储器,并且将该附加存储器连接至存储控制节点中的控制器。具体地,图3示意性示出了根据本发明的一个实施方式的用于管理存储***300中的存储器的方法的架构图。如图3所示,存储***300包括存储控制节点310和320,其中控制器312耦合至存储器314和附加存储器316。
在图3的示例中,存储器314可以是动态随机访问存储器(Dynamic Random AccessMemory,DRAM),并且附加存储器316可以是非易失性随机访问存储器(Non-VolatileRandom Access Memory,NVRAM)。该附加存储器316可以通过桥接设备(例如,PCIE交换机)来连接到控制器312,并且该附加存储器316还可以被耦合至存储控制节点320中的控制器322。类似地,存储控制节点320中控制器322、附加存储器326和存储器324可以以类似于存储控制节点310的方式连接,在此不再赘述。
应当注意,按照如图3所示的架构,附加存储器316被耦合至控制器312和322两者,因而在需要时控制器322可以直接访问附加存储器316中的数据。存储控制节点310接收来自主机的访问请求,在附加存储器316中分配存储空间来服务于访问请求,则可以在两个存储控制节点310和320之间仅传输有关所分配存储空间的元数据,而不必真正地执行数据拷贝。换言之,根据本发明的技术方案,可以省略如图2所示的箭头D-E所示的数据拷贝步骤,进而大大降低等待时间。
本领域技术人员应当理解,图3中以虚线框示出了附加存储器326,该虚线框表示附加存储器326是可选的设备。换言之,在一个实施方式中,可以分别设置附加存储器316和326两者;在另一实施方式中,可以仅设置附加存储器316。还应当理解,尽管在图3中出于访问效率的考虑而将附加存储器316设置在存储控制节点310内部,在其他的实施方式中,还可以将附加存储器316设置在存储控制节点310外部,只要控制器312能够访问该附加存储器316即可。
基于如图3所示的架构,本发明的一个实施方式提出了一种用于管理存储***中的存储器的方法,所述存储***包括第一控制器、第一存储器以及耦合至所述第一控制器的第一附加存储器,所述方法包括:响应于来自所述第一控制器的针对所述存储***的访问请求命中所述第一存储器,在所述第一附加存储器中分配存储空间;将所述第一存储器中的与所述访问请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
在下文中将以图3所示的存储控制节点310作为执行本发明的实施方式的各个步骤的主体,具体描述本发明的实施方式的具体细节。图4示意性示出了根据本发明的一个实施方式的用于管理存储***中的存储器的方法的流程图400。
在步骤S410中,响应于来自所述第一控制器的针对所述存储***的访问请求命中所述第一存储器,在所述第一附加存储器中分配存储空间。由于脏数据将导致如图2中步骤D-E所示的数据拷贝操作,因而在本发明的实施方式中可以尽量避免在存储器314中出现脏数据的情况。为此,当访问请求命中第一存储器(例如,图3所示存储器314)时,在第一附加存储器(例如,图3所示的附加存储器316)中分配存储空间来服务于访问请求,从而避免使用第一存储器时的需要向另一存储控制节点中的存储器拷贝数据的情况。
在步骤S420中,将所述第一存储器中的与所述访问请求相关联的数据写入所述第一附加存储器中的所分配的存储空间。在此步骤中,如图3所示的控制器312将存储器314中的与访问请求相关联的数据写入附加存储器316中的所分配的存储空间。此时,由于附加存储器316可以同时被控制器312和322访问,因而不必再在存储器314和324之间执行数据拷贝,进而可以降低等待时间。
应当注意,由于存储器314、附加存储器316、和控制器312可以均位于存储控制节点310内部,并且存储器314和附加存储器316均耦合至控制器312,因而在步骤S420中的数据写入操作的速度将远远快于在存储器314和324之间的数据拷贝操作(存储器314和324分别位于不同的存储控制节点310和320,因而数据拷贝速度较慢)。
接着在步骤S430中,经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。利用附加存储器316来服务于访问请求,在需要时存储控制节点320中的控制器322可以直接访问附加存储器316中的数据,因而在无需在两个存储控制节点310之间拷贝数据的情况下,实现了镜像存储器的功能。
在本发明的一个实施方式中,进一步包括:释放所述第一存储器中的与所述访问请求相关联的存储空间。在上文中已经参见图4描述了本发明的一个实施方式的具体步骤,由于在上文所示的步骤S420中已经将与访问请求相关联的数据写入到了附加存储器中,因而在第一存储器中的相应的存储空间可以被释放。继续上文图3的示例,假设与访问请求相关联的数据在存储器314中的地址范围为[0x00000000-0x000000FF],则该地址范围可以被释放用于分配给其他访问请求。
在本发明的一个实施方式中,所述存储***进一步包括第二控制器以及第二存储器,其中释放所述第一存储器中的与所述访问请求相关联的存储空间进一步包括:将所述第一存储空间中的与所述访问请求相关联的存储空间无效;以及向所述第二存储器同步与被无效的存储空间相关联的元数据以用于通知所述第二控制器。
应当注意,由于在本发明的上下文中的第一存储器和第二存储器是一对镜像存储器,因而在第一存储器中的存储空间的使用状况应当被映射至第二存储器。继续上文的示例,当已经将地址范围[0x00000000-0x000000FF]内的数据无效之后,还应当向第二存储器通知相关联的元数据。在此实施方式中,存储器中的每个存储页面可以具有相关联的元数据。在不同的技术方案中,可以定义不同的数据结构来描述元数据。例如,下文表1示意性示出了根据一个实施方式中的元数据的定义。
Figure BDA0001019088820000111
在表1所示的数据结构中,elementKey用于记录存储页面在存储器中的位置,lock用于记录该存储页面是否被锁定,directoryLunAndIndex用于记录该在存储设备上的LUNID和位置,以及dirtyBits用于记录该存储页面是否为“脏”dirty,并且哪部分是脏的。应当注意,上文表1仅仅示意性示出了元数据的一个示例,本领域技术人员可以根据具体应用环境的要求来定义其他的数据结构。
在本发明的一个实施方式中,所述存储***进一步包括:耦合至所述第一控制器的第二附加存储器,以及所述第一附加存储器和第二附加存储器耦合至所述第二控制器。
图5示意性示出了根据本发明的一个实施方式的由存储***中的控制器访问存储器的技术方案的示意图500。如图5所示,存储***中的控制器312和322可以访问不同的存储器资源。例如,如图5中的实线所示,存储控制节点310中的控制器312可以访问存储器314和附加存储器316(存储器314和附加存储器316例如可以位于控制器312所在的存储控制节点中)和326。又例如,如图5中的虚线所示,存储控制节点320中的控制器322可以访问存储器324和附加存储器326(存储器324和附加存储器326例如可以位于控制器322所在的存储控制节点中)和316。
以此方式,控制器312和322中的任一项均可访问附加存储器316和附加存储器326,因而,当任一控制器(例如控制器312)接收到访问请求时,通过使得附加存储器316或者附加存储器326来服务于该访问请求,另一控制器(例如控制器322)可以在无需在两个存储控制节点之间执行数据拷贝的情况下,访问与访问请求相关联的数据。
在本发明的一个实施方式中,进一步包括:响应于来自所述第二控制器的针对所述存储***的第二访问请求命中所述第一附加存储器,经由所述第一附加存储器中的与所述第二访问请求相关联的存储空间来服务于所述第二访问请求。
参见图5,当控制器322接收到访问存储设备中的某地址的访问请求时,由于控制器322可以通过查询元数据而知晓该访问请求是否命中附加存储器316、326或者存储器324。当访问请求命中存储器324时,则可以采用上文参见图4描述的方法来进行操作,在此不再赘述。当访问请求命中附加存储器316时,则可以经由该附加存储器316中的与访问请求相关联的存储空间来服务器该访问请求。按照图5所示的架构,由于附加存储器316和326具有等同的地位,因而当访问请求命中附加存储器326时,则可以经由该附加存储器326中的与访问请求相关联的存储空间来服务器该访问请求。
在本发明的一个实施方式中,由于图5中所示的架构是对称的,因而在本发明的上下文中以存储控制节点310为执行主体而描述的各个方法均可以由存储控制节点320来执行。
在上文中,已经描述了当访问请求命中第一存储器的情况。在实际应用环境中,还可能出现访问请求未命中第一存储器的情况。在此情况下,为了尽可能地利用附加存储器来服务于访问请求进而避免在两个存储控制节点中的普通存储器(例如,图5中的存储器314和324)之间的数据拷贝操作,可以利用附加存储器316来响应于访问请求。
在本发明的一个实施方式中,进一步包括:响应于所述访问请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;以及经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
继续参见图5,假设控制器312接收到访问请求并且该访问请求未命中存储器314,则此时可以在控制器312可以访问的附加存储器316和326中的任一项中分配存储空间,以便服务于该访问请求。考虑到附加存储器316与控制器312均位于存储控制节点310中,控制器312对于附加存储器316的访问速度可能会快于对附加存储器326的访问访问速度,因而可以优先在附加存储器316中分配存储空间。备选地,还可以在附加存储器326中分配存储空间。尽管由附加存储器326来响应于访问请求可能会慢于由附加存储器316来响应于访问请求,由于避免了在存储器314和324之间的数据拷贝操作,等待时间也有所降低。
图6示意性示出了根据本发明的一个实施方式的用于管理存储***中的存储器的方法的流程图600。首先,在步骤S610中确定来自第一控制器的访问请求是否命中第一存储器,并且在未命中的情况下,从第一附加存储器中分配存储空间。在此步骤中,可以从第一附加存储器的可用空间中分配符合访问请求所需数量的存储空间。接着,在步骤S620中,经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
在本发明的一个实施方式中,所述存储***进一步包括第二控制器以及第二存储器,以及所述方法进一步包括:向所述第二存储器同步与所述第一附加存储器中的所分配的所述存储空间相关联的元数据以用于通知所述第二控制器。
在此实施方式中,由于第二控制器也需要知晓在第一附加存储器分配的存储空间的信息,因而在确定由第一附加存储器中所分配的存储空间来服务器访问请求之后,还需要将所分配的存储空间相关联的元数据通知第二控制器。在此实施方式中的元数据可以采用与上文表1中所描述的数据结构类似的方式来存储。备选地,本领域技术人员还可以采用其他的数据结构来保存元数据。
图7示意性示出了根据本发明的一个实施方式的用于在存储***中管理存储器的架构图700。如图7所示,附加存储器316可以连接至本地电源710,还可以连接至存储控制节点320的电压720;进一步,附加存储器326可以连接至本地电源720,还可以连接至存储控制节点310的电源710。以此方式,当两个存储控制节点310和320中的任一项出现故障时,故障存储控制节点中的附加存储器可以被正常的存储控制节点中的电源供电。因而,该故障存储控制节点中的附加存储器可以继续被正常的存储控制节点来访问。参见图7,假设存储控制节点320出现故障,则此时存储控制节点320中的以阴影示出的控制器322、存储器324和电源720均无法正常使用,然而附加存储器326可以在电压710的供电下正常使用。
在下文中,将描述一个存储控制节点出现故障时处理访问请求的具体步骤。在本发明的一个实施方式中,进一步包括:响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的访问请求;以及响应于所述访问请求未命中,在所述第一存储器中分配存储空间以响应于所述访问请求。
在下文中,仅以读请求为示例来描述存储***的具体操作。参见图7,当存储控制节点320出现故障时,存储控制节点310中可以继续正常工作并处理来自外界主机的访问请求。当控制器312接收到读请求时,确定该读请求是否命中控制器312可访问的各个存储器(例如,存储器314、附加存储器316和附加存储器326)。当读请求未命中上述任何存储器时,则在附加存储器316中分配存储空间以响应于该读请求。备选地,由于此时附加存储器326也处于正常工作状态,因而还可以在附加存储器326中分配存储空间来用于服务于该读请求。
在本发明的一个实施方式中,进一步包括:响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;响应于所述写请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;将所述第一存储器中的与所述写请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及经由所述第一附加存储器中的所分配的所述存储空间来服务于所述写请求。
在此实施方式中,类似于上文参见图4描述的方法,当控制器312接收到写请求时,可以首先判断该写请求是否命中了控制器312可访问的各个存储器(例如,存储器314、附加存储器316和附加存储器326)。响应于写请求命中存储器314,则在附加存储器316中分配存储空间,将存储器314中的与写请求相关联的数据写入附加存储器316,并且由附加存储器316中的所分配的存储空间来服务于该写请求。
由于控制器314可以同时访问附加存储器316和附加存储器316,因而备选地,响应于写请求命中存储器314,则在附加存储器326中分配存储空间,将存储器314中的与写请求相关联的数据写入附加存储器326,并且由附加存储器326中的所分配的存储空间来服务于该写请求。
在本发明的一个实施方式中,进一步包括:响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;以及响应于所述写请求未命中,在所述第一附加存储器中分配存储空间以服务于所述写请求。继续参见图7,当确定控制器312接收到的写请求并未命中存储器314、附加存储器316和附加存储器326中的任一项时,可以由附加存储器316(或者326)来服务于该写请求。
应当注意,在上文中仅参见图7描述了存储控制节点320出现故障的情况。当图7中的存储控制节点310出现故障时,本领域技术人员可以基于本文描述的原理来实现由存储控制节点320接收并且处理来自外界主机的访问请求的具体实施方式。
图8示意性示出了根据本发明的一个实施方式的用于管理存储***中的存储器的装置的框图。如图8所示,提出了一种用于管理存储***中的存储器的装置,所述存储***包括第一控制器、第一存储器以及耦合至所述第一控制器的第一附加存储器,所述装置包括:分配模块810,配置用于响应于来自所述第一控制器的针对所述存储***的访问请求命中所述第一存储器,在所述第一附加存储器中分配存储空间;写入模块820,配置用于将所述第一存储器中的与所述访问请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及服务模块830,配置用于经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
在本发明的一个实施方式中,进一步包括:释放模块,配置用于释放所述第一存储器中的与所述访问请求相关联的存储空间。
在本发明的一个实施方式中,所述存储***进一步包括第二控制器以及第二存储器,其中释放模块包括:无效模块,配置用于将所述第一存储空间中的与所述访问请求相关联的存储空间无效;以及同步模块,配置用于向所述第二存储器同步与被无效的存储空间相关联的元数据以用于通知所述第二控制器。
在本发明的一个实施方式中,所述分配模块进一步配置用于:响应于所述访问请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;以及所述服务模块进一步配置用于经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
在本发明的一个实施方式中,所述存储***进一步包括第二控制器以及第二存储器,以及所述装置进一步包括:通知模块,配置用于向所述第二存储器同步与所述第一附加存储器中的所分配的所述存储空间相关联的元数据以用于通知所述第二控制器。
在本发明的一个实施方式中,所述服务模块830进一步配置用于:响应于来自所述第二控制器的针对所述存储***的第二访问请求命中所述第一附加存储器,经由所述第一附加存储器中的与所述第二访问请求相关联的存储空间来服务于所述第二访问请求。
在本发明的一个实施方式中,进一步包括:故障处理模块,配置用于响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的访问请求;以及所述分配模块810进一步配置用于,响应于所述访问请求未命中,在所述第一存储器中分配存储空间以响应于所述访问请求。
在本发明的一个实施方式中,进一步包括:故障处理模块,配置用于响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;所述分配模块810进一步配置用于,响应于所述写请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;所述写入模块820进一步配置用于将所述第一存储器中的与所述写请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及所述服务模块830进一步配置用于经由所述第一附加存储器中的所分配的所述存储空间来服务于所述写请求。
在本发明的一个实施方式中,进一步包括:故障处理模块,配置用于响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;以及所述分配模块进一步配置用于,响应于所述写请求未命中,在所述第一附加存储器中分配存储空间以服务于所述写请求。
在本发明的一个实施方式中,所述存储***进一步包括:耦合至所述第一控制器的第二附加存储器,以及所述第一附加存储器和第二附加存储器耦合至所述第二控制器。
在本发明的一个实施方式中,提供了一种用于管理存储***中的存储器的***,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述方法包括:在包括第一控制器、第一存储器以及耦合至所述第一控制器的第一附加存储器的存储***中,响应于来自所述第一控制器的针对所述存储***的访问请求命中所述第一存储器,在所述第一附加存储器中分配存储空间;将所述第一存储器中的与所述访问请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:释放所述第一存储器中的与所述访问请求相关联的存储空间。
在本发明的一个实施方式中,所述存储***进一步包括第二控制器以及第二存储器,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:将所述第一存储空间中的与所述访问请求相关联的存储空间无效;以及向所述第二存储器同步与被无效的存储空间相关联的元数据以用于通知所述第二控制器。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:响应于所述访问请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;以及经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
在本发明的一个实施方式中,所述存储***进一步包括第二控制器以及第二存储器,以及当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:向所述第二存储器同步与所述第一附加存储器中的所分配的所述存储空间相关联的元数据以用于通知所述第二控制器。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:响应于来自所述第二控制器的针对所述存储***的第二访问请求命中所述第一附加存储器,经由所述第一附加存储器中的与所述第二访问请求相关联的存储空间来服务于所述第二访问请求。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的访问请求;以及响应于所述访问请求未命中,在所述第一存储器中分配存储空间以响应于所述访问请求。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;响应于所述写请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;将所述第一存储器中的与所述写请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及经由所述第一附加存储器中的所分配的所述存储空间来服务于所述写请求。
在本发明的一个实施方式中,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;以及响应于所述写请求未命中,在所述第一附加存储器中分配存储空间以服务于所述写请求。
在本发明的一个实施方式中,所述存储***进一步包括:耦合至所述第一控制器的第二附加存储器,以及所述第一附加存储器和第二附加存储器耦合至所述第二控制器。
附图中的流程图和框图显示了根据本发明的多个实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (20)

1.一种用于管理存储***中的存储器的方法,所述存储***包括第一控制器、耦合至所述第一控制器的第一存储器、第二控制器、耦合至所述第二控制器的第二存储器、以及耦合至所述第一控制器和所述第二控制器的第一附加存储器,所述方法包括:
响应于来自所述第一控制器的针对所述存储***的访问请求命中所述第一存储器,在所述第一附加存储器中分配存储空间;
将所述第一存储器中的与所述访问请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及
经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求,其中经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求包括:经由所述第一附加存储器,向所述第一控制器和所述第二控制器中的每个控制器提供对与所述访问请求相关联的数据的同时访问。
2.根据权利要求1所述的方法,进一步包括:释放所述第一存储器中的与所述访问请求相关联的存储空间。
3.根据权利要求2所述的方法,其中所述存储***进一步包括第二存储器,其中释放所述第一存储器中的与所述访问请求相关联的存储空间进一步包括:
将所述第一存储空间中的与所述访问请求相关联的存储空间无效;以及
向所述第二存储器同步与被无效的存储空间相关联的元数据以用于通知所述第二控制器。
4.根据权利要求1所述的方法,进一步包括:
响应于所述访问请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;以及
经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
5.根据权利要求1-4中的任一项所述的方法,其中所述存储***进一步包括第二控制器以及第二存储器,以及所述方法进一步包括:
向所述第二存储器同步与所述第一附加存储器中的所分配的所述存储空间相关联的元数据以用于通知所述第二控制器。
6.根据权利要求5所述的方法,进一步包括:
响应于来自所述第二控制器的针对所述存储***的第二访问请求命中所述第一附加存储器,经由所述第一附加存储器中的与所述第二访问请求相关联的存储空间来服务于所述第二访问请求。
7.根据权利要求5所述的方法,进一步包括:
响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的访问请求;以及
响应于所述访问请求未命中,在所述第一存储器中分配存储空间以响应于所述访问请求。
8.根据权利要求5所述的方法,进一步包括:
响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;
响应于所述写请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;
将所述第一存储器中的与所述写请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及
经由所述第一附加存储器中的所分配的所述存储空间来服务于所述写请求。
9.根据权利要求5所述的方法,进一步包括:
响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;以及
响应于所述写请求未命中,在所述第一附加存储器中分配存储空间以服务于所述写请求。
10.根据权利要求5所述的方法,其中所述存储***进一步包括:耦合至所述第一控制器的第二附加存储器,以及所述第一附加存储器和第二附加存储器耦合至所述第二控制器。
11.一种用于管理存储***中的存储器的***,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述***执行用于管理存储***中的存储器的方法,所述存储***包括第一控制器、耦合至所述第一控制器的第一存储器、第二控制器、耦合至所述第二控制器的第二存储器、以及耦合至所述第一控制器和所述第二控制器的第一附加存储器,所述方法包括:
响应于来自所述第一控制器的针对所述存储***的访问请求命中所述第一存储器,在所述第一附加存储器中分配存储空间;
将所述第一存储器中的与所述访问请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及
经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求,其中经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求包括:经由所述第一附加存储器,向所述第一控制器和所述第二控制器中的每个控制器提供对与所述访问请求相关联的数据的同时访问。
12.根据权利要求11所述的***,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:释放所述第一存储器中的与所述访问请求相关联的存储空间。
13.根据权利要求12所述的***,其中所述存储***进一步包括第二存储器,其中当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
将所述第一存储空间中的与所述访问请求相关联的存储空间无效;以及
向所述第二存储器同步与被无效的存储空间相关联的元数据以用于通知所述第二控制器。
14.根据权利要求11所述的***,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
响应于所述访问请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;以及
经由所述第一附加存储器中的所分配的所述存储空间来服务于所述访问请求。
15.根据权利要求11-14中的任一项所述的***,其中所述存储***进一步包括第二控制器以及第二存储器,以及当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
向所述第二存储器同步与所述第一附加存储器中的所分配的所述存储空间相关联的元数据以用于通知所述第二控制器。
16.根据权利要求15所述的***,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
响应于来自所述第二控制器的针对所述存储***的第二访问请求命中所述第一附加存储器,经由所述第一附加存储器中的与所述第二访问请求相关联的存储空间来服务于所述第二访问请求。
17.根据权利要求15所述的***,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的访问请求;以及
响应于所述访问请求未命中,在所述第一存储器中分配存储空间以响应于所述访问请求。
18.根据权利要求15所述的***,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;
响应于所述写请求未命中所述第一存储器,在所述第一附加存储器中分配存储空间;
将所述第一存储器中的与所述写请求相关联的数据写入所述第一附加存储器中的所分配的存储空间;以及
经由所述第一附加存储器中的所分配的所述存储空间来服务于所述写请求。
19.根据权利要求15所述的***,当由所述至少一个处理器执行所述计算机程序指令时,进一步使得所述***:
响应于所述第二控制器故障,经由所述第一控制器接收针对所述存储***的写请求;以及
响应于所述写请求未命中,在所述第一附加存储器中分配存储空间以服务于所述写请求。
20.根据权利要求15所述的***,其中所述存储***进一步包括:耦合至所述第一控制器的第二附加存储器,以及所述第一附加存储器和第二附加存储器耦合至所述第二控制器。
CN201610428405.4A 2016-06-16 2016-06-16 用于管理存储***中的存储器的方法和*** Active CN107515723B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610428405.4A CN107515723B (zh) 2016-06-16 2016-06-16 用于管理存储***中的存储器的方法和***
US15/623,442 US10437471B2 (en) 2016-06-16 2017-06-15 Method and system for allocating and managing storage in a raid storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610428405.4A CN107515723B (zh) 2016-06-16 2016-06-16 用于管理存储***中的存储器的方法和***

Publications (2)

Publication Number Publication Date
CN107515723A CN107515723A (zh) 2017-12-26
CN107515723B true CN107515723B (zh) 2020-04-24

Family

ID=60660063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610428405.4A Active CN107515723B (zh) 2016-06-16 2016-06-16 用于管理存储***中的存储器的方法和***

Country Status (2)

Country Link
US (1) US10437471B2 (zh)
CN (1) CN107515723B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11360868B2 (en) * 2019-06-07 2022-06-14 Micron Technology, Inc. Redundant cloud memory storage for a memory subsystem

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101533A (zh) * 2006-07-06 2008-01-09 奇梦达北美公司 通过易失性存储器接口访问非易失性存储器的方法
CN101809559A (zh) * 2007-09-05 2010-08-18 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储***中的逻辑到物理地址映射
CN104461768A (zh) * 2013-09-22 2015-03-25 华为技术有限公司 副本存储装置及副本存储方法
CN102467352B (zh) * 2010-11-08 2016-04-13 Lsi公司 减少存储***请求的响应延迟

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101566931B (zh) * 2003-08-14 2011-05-18 克姆佩棱特科技公司 虚拟磁盘驱动***和方法
US20080010420A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Method for Accessing Control Registers via a Memory Device
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
EP2350830A4 (en) * 2008-10-30 2013-05-22 Lsi Corp REDISTRIBUTION OF STORAGE CONTROLLER DATA
GB2506044B (en) * 2011-05-23 2020-04-22 Ibm Storage checkpointing in a mirrored virtual machine system
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US8904231B2 (en) * 2012-08-08 2014-12-02 Netapp, Inc. Synchronous local and cross-site failover in clustered storage systems
US20150012699A1 (en) * 2013-07-02 2015-01-08 Lsi Corporation System and method of versioning cache for a clustering topology
US9274901B2 (en) * 2013-11-20 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. I/O request mirroring in a clustered storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101533A (zh) * 2006-07-06 2008-01-09 奇梦达北美公司 通过易失性存储器接口访问非易失性存储器的方法
CN101809559A (zh) * 2007-09-05 2010-08-18 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储***中的逻辑到物理地址映射
CN102467352B (zh) * 2010-11-08 2016-04-13 Lsi公司 减少存储***请求的响应延迟
CN104461768A (zh) * 2013-09-22 2015-03-25 华为技术有限公司 副本存储装置及副本存储方法

Also Published As

Publication number Publication date
US20170364270A1 (en) 2017-12-21
US10437471B2 (en) 2019-10-08
CN107515723A (zh) 2017-12-26

Similar Documents

Publication Publication Date Title
US11237772B2 (en) Data storage system with multi-tier control plane
US20200404055A1 (en) Data storage system with redundant internal networks
US11467732B2 (en) Data storage system with multiple durability levels
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
US9535840B2 (en) Parallel destaging with replicated cache pinning
US9983935B2 (en) Storage checkpointing in a mirrored virtual machine system
US20130212321A1 (en) Apparatus, System, and Method for Auto-Commit Memory Management
US10157129B2 (en) Mirroring a cache having a modified cache state
US9423981B2 (en) Logical region allocation with immediate availability
JP2012104097A (ja) ストレージシステムにおける要求に対する応答に関連した待ち時間削減
US10592165B1 (en) Method, apparatus and computer program product for queueing I/O requests on mapped RAID
US11677633B2 (en) Methods and systems for distributing topology information to client nodes
US10234929B2 (en) Storage system and control apparatus
US10860224B2 (en) Method and system for delivering message in storage system
WO2023169185A1 (zh) 内存管理方法和装置
US20140344503A1 (en) Methods and apparatus for atomic write processing
US10007467B2 (en) Storage system
CN107515723B (zh) 用于管理存储***中的存储器的方法和***
US10852951B1 (en) System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
KR102245309B1 (ko) 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법
US12007942B2 (en) Methods and systems for seamlessly provisioning client application nodes in a distributed system
US20230130893A1 (en) Methods and systems for seamlessly configuring client nodes in a distributed system
CN117687835A (zh) 数据处理***、内存镜像方法、装置和计算设备
US11941253B2 (en) Storage system and method using persistent memory
US9430489B2 (en) Computer, data storage method, and information processing system

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
TA01 Transfer of patent application right

Effective date of registration: 20200318

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

GR01 Patent grant
GR01 Patent grant