CN110058787B - 用于写入数据的方法、设备和计算机程序产品 - Google Patents

用于写入数据的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110058787B
CN110058787B CN201810049266.3A CN201810049266A CN110058787B CN 110058787 B CN110058787 B CN 110058787B CN 201810049266 A CN201810049266 A CN 201810049266A CN 110058787 B CN110058787 B CN 110058787B
Authority
CN
China
Prior art keywords
data
copying
block
storage area
memory
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
CN201810049266.3A
Other languages
English (en)
Other versions
CN110058787A (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 CN201810049266.3A priority Critical patent/CN110058787B/zh
Priority to CN202210684044.5A priority patent/CN115098021A/zh
Priority to US16/250,140 priority patent/US10831401B2/en
Publication of CN110058787A publication Critical patent/CN110058787A/zh
Application granted granted Critical
Publication of CN110058787B publication Critical patent/CN110058787B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • 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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及一种用于写入数据的方法、设备和计算机程序产品。该方法包括在从源存储区向目标存储区拷贝第一数据期间接收针对源存储区中的第一存储块的写请求。该方法还包括在目标存储区的第二存储块中写入与写请求关联的第二数据,其中第二存储块对应于第一存储块。此外,该方法还包括更新与第一存储块相关联的指示符,其中指示符指示第二数据是在拷贝期间由写请求写入。本公开的实施例通过设置指示在数据拷贝期间存储块是否接收到写请求的指示符,使得待写数据能够直接被写入到目标存储区,而不需要被写入到源存储区。因此,本公开的实施例不仅能够提高数据拷贝期间的写性能,而且能够延长源存储区的使用寿命。

Description

用于写入数据的方法、设备和计算机程序产品
技术领域
本公开的实施例总体上涉及数据存储领域,并且更具体地涉及用于写入数据方法、设备以及计算机程序产品。
背景技术
数据拷贝是指将数据从一个存储区拷贝到另一存储区中,其通常用于数据的转移或备份。一般来说,数据拷贝操作具有基本的操作单位,也称为拷贝粒度。例如,存储区被划分成多个相同大小的存储块,每个存储块的大小可以被当作数据拷贝的粒度。在数据拷贝期间,针对每次拷贝操作,拷贝一个存储块中的数据,例如一个数据块。
独立盘冗余阵列(RAID)是一种数据备份技术,其能够把多块独立的物理盘按不同的方式组合起来形成一个盘的阵列(即,逻辑盘),从而提供比单个盘更高的存储性能和更高的可靠性能。为了在RAID中的某个盘发生故障时对数据进行恢复,RAID中通常设置一个奇偶校验信息块(例如RAID 5)或多个奇偶校验信息块(例如RAID 6)。
发明内容
本公开的实施例提供了一种用于写入数据的方法、设备和计算机程序产品。
在本公开的一个方面,提供了一种写入数据的方法。该方法包括:在从源存储区向目标存储区拷贝第一数据期间,接收针对源存储区中的第一存储块的写请求;在目标存储区的第二存储块中写入与写请求关联的第二数据,其中第二存储块对应于第一存储块;以及更新与第一存储块相关联的指示符,其中指示符指示第二数据是在拷贝期间由写请求写入。
在本公开的另一方面,提供了一种用于写入数据的设备。该设备包括处理单元以及存储器,其中存储器被耦合至处理单元并且存储有指令。所述指令在由处理单元执行时执行以下动作:在从源存储区向目标存储区拷贝第一数据期间,接收针对源存储区中的第一存储块的写请求;在目标存储区的第二存储块中写入与写请求关联的第二数据,其中第二存储块对应于第一存储块;以及更新与第一存储块相关联的指示符,其中指示符指示第二数据是在拷贝期间由写请求写入。
在本公开的又一方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据本公开的实施例的方法或过程。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。本发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的各个实施例的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的附图标记通常代表相同的元素。
图1示出了根据本公开的实施例的用于在拷贝期间写入数据的示例环境的示意图;
图2示出了根据本公开的实施例的用于在拷贝期间写入数据的方法的流程图;
图3示出了根据本公开的实施例的用于在检查点之前写入数据的示例环境的示意图;
图4示出了根据本公开的实施例的用于在检查点之后写入数据的示例环境的示意图;
图5示出了根据本公开的实施例的用于在拷贝期间读取数据的方法的流程图;
图6示出了根据本公开的实施例的用于在拷贝期间处理故障的方法的流程图;
图7示出了根据本公开的实施例的映射RAID的示例性架构的示意图;
图8示出了根据本公开的实施例的在映射RAID中重建故障盘的示意图;以及
图9示出了可以用来实施本公开的实施例的设备的示意性块图。
具体实施例
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的一些具体实施例,然而应该理解,可以以各种形式实现本公开,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象,除非明确指示不同。术语“存储区”表示持久保存数据的非易失性存储器,例如盘。盘的示例包括但不限于硬盘驱动器(HDD)、光盘驱动器以及固态盘(SSD)等。
传统地,在数据拷贝期间,在接收到对于数据的写请求时,通常不会考虑拷贝的检查点(即拷贝操作的进度)。因此,传统的方法将会向源存储区和目标存储区二者中都写入数据。对于读请求,如果是读取在检查点之前的存储块中的数据,则其可以从源存储区或者目标存储区进行读取;而如果是读取在检查点之后的存储块中的数据,则其只能从源存储区进行读取。然而,传统的方法由于需要向源存储区和目标存储区二者中都写入数据,因而需要写入双倍的数据并且花费更多的时间,从而影响存储系统的写性能。此外,由于需要将数据还写入到源存储区,因而过多的写入会降低源存储区的使用寿命。
本公开的实施例提出了一种用于在拷贝期间写入数据的方案。根据本公开的实施例,通过设置指示在数据拷贝期间存储块是否接收到写请求的指示符,使得待写数据能够直接被写入到目标存储区,而不需要被写入到源存储区。因此,本公开的实施例不仅能够提高数据拷贝期间的写性能,而且能够延长源存储区的使用寿命。
此外,本公开的实施例通过比较待写数据的存储块位置和检查点,能够有效地执行拷贝期间的数据写入。同时,本公开的实施例提供在拷贝期间的故障处理方式,能够处理处理器和存储区的故障,由此保证数据的正确性和完整性。另外,由于映射RAID中存在较大的数据拷贝需求,因而本公开的实施例的方法适合于映射RAID中盘替换和盘增加的场景,从而能够提升映射RAID的性能。
以下参考图1至图9来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的用于在拷贝期间写入数据的示例环境100的示意图。如图1所示,环境100中包括源存储区110和目标存储区120,源存储区110和目标存储区120可以是各种持久性数据存储装置,例如硬盘驱动器(HDD)、固态盘(SSD)等。源存储区110和目标存储区120通常被划分成多个大小的存储块,每个存储块的大小可以相同,从而构成存储区的基本拷贝单位,即粒度。针对每次拷贝操作,可以完成一个存储块中的数据的拷贝。如图1所示,源存储区110包括存储块111、112、113、114、115、116等,目标存储区120包括存储块121、122、123、124、125、126等。
如图1所示,环境100还包括指示符集合130,其包括多个指示符131、132、133、134、135、136等,每个指示符用于指示对应的存储块在拷贝期间是否接收到写请求。例如,指示符132用于指示源存储区110中的存储块112在拷贝期间是否接收到写请求。在一些实施例中,例如,指示符取值为0表示在拷贝期间没有接收到写请求,而指示符取值为1表示在拷贝期间接收到写请求。应当理解,虽然使用0和1作为指示符取值的示例性形式,然而,其他的取值或表示也是可能的。如图1所示,指示符集合130可以被表示为{000000…},其也可被称为写IO位图(bitmap)。在一些实施例中,指示符集合130可以仅被存储在高速缓存中,而不需要存储在盘中,而且,在完成拷贝操作之后,其可以被删除。通过使用指示符,可以使得源存储区保持原始的数据,而目标存储区保持较新的数据。
如环境100所示,正在从源存储区110向目标存储区120拷贝数据,如箭头140所示,当前正在拷贝存储块113中的数据,也即,将存储块113中的数据拷贝到存储块123中。此时,检查点150可以处于存储块130的末尾,其指示拷贝的进度,也即下一拷贝操作将开始的位置,检查点150将随着拷贝的进行而向前移动。由于源存储区110中的存储块和目标存储区120中的存储块具有对应性,因而指示符集合130中的指示符在指示源存储区110中的存储块时,也可以映射到目标存储区120中的相应存储块。
在一些实施例中,还可以在存储区(例如盘区)的末尾存储拷贝元数据,其用于指示每个存储块中的数据是否完成拷贝。例如,可以使用1来表示已经完成某个存储块的拷贝,使用0来表示还没有完成该存储块的拷贝。应该理解,由于拷贝元数据被存储在盘区中,因而其可以持久地被存储。
在从源存储区向目标存储区拷贝数据期间,可能会继续接收到针对源存储区的写请求和读请求。根据本公开的实施例,通过设置指示在数据拷贝期间存储块是否接收到写请求的指示符,针对源存储区的待写数据会被直接写入目标存储区,而不会写入到源存储区。因此,本公开的实施例能够减少数据拷贝期间的数据写入时间,并且还能够延长源存储区的使用寿命。
图2示出了根据本公开的实施例的用于在拷贝期间写入数据的方法200的流程图。例如,方法200可以由存储系统中的处理器来执行。在202,在从源存储区向目标存储区拷贝第一数据期间,接收针对源存储区中的第一存储块的写请求。例如,在从RAID中源存储区110(源盘)向目标存储区120(目标盘)拷贝数据期间,接收到针对存储块112的写请求。一般来说,在源存储区(诸如源盘)将要被替换成目标存储区或者在RAID中新增目标存储区(诸如目标盘)的情况下,通常需要执行从源存储区向目标存储区的数据拷贝。
在一些实施例中,可以使用镜像重建的方式来拷贝数据,即从源存储区读取数据并且在目标存储区上重建数据。此外,在拷贝的过程中,可以相应地更新拷贝元数据和拷贝检查点,并且在完成所有拷贝之后将拷贝操作标记为完成。在一些实施例中,可以对写操作设置锁,使得无法对同一个存储块执行两个或两个以上的写操作。
在204,在目标存储区的第二存储块中写入与写请求关联的第二数据,其中第二存储块对应于第一存储块。例如,在接收到针对源存储区110中的存储块112的写请求时,将待写数据直接写入到目标存储区120中的存储块122中,而不需要将写数据再写入到存储块112中。应当理解,第二存储块可以是第一存储块中的数据将要拷贝的目的地存储块。
在一些实施例中,可以基于检查点150和写请求所针对的存储块的位置来写入待写数据。例如,取决于待写数据所涉及的存储块的范围,可以将待写数据直接写入到目标存储区,或者可以从源存储区读取相应存储块的数据并利用待写数据来更新原始数据,然后在目标存储区中写入更新后的数据,以下参考图3和图4描述了基于检查点来写入数据的示例实现。
在206,更新与第一存储块相关联的指示符,其中指示符指示第二数据是在拷贝期间由写请求写入。例如,在第二存储块122中写入第二数据的同时或之后,可以更新存储块112的指示符,例如将其指示符取值从0更改为1以指示在拷贝期间存储块112接收到写请求。在一些实施例中,可以在多个处理器的高速缓存中同步指示符集合130中的指示符,并在完成同步指示符之后返回写请求的状态。
在一些实施例中,写入数据的基本单位大小可以等于每个存储块的大小(即拷贝数据的基本单位),在这种情况下,一个存储块对应于一个指示符。备选地,写入数据的基本单位大小可以比每个存储块的大小更小,例如可以是每个存储块大小(例如1MB)的一半(例如512KB),在这种情况下,一个存储块可以对应于两个指示符,例如,第一指示符用于指示该存储块中的前一半在拷贝期间是否接收到写请求,第二指示符用于指示该存储块中的后一半在拷贝期间是否接收到写请求。
应当理解,虽然可能参考RAID来描述方法200,但是方法200可以应用于各种数据拷贝场景,而不仅限于RAID。因此,根据在本公开的实施例,在两个存储区之间的数据拷贝期间,针对源存储区的待写数据会被直接写入目标存储区,并且使用指示符来指示在拷贝期间某个存储块是否接收到写请求,由此提高数据拷贝期间的写性能,并且延长源存储区的使用寿命。
图3示出了根据本公开的实施例的用于在检查点之前写入数据的示例环境300的示意图。与图1的环境100相比,图3的环境300中正在接收到对于存储块112的写请求。由于存储块112的位置在检查点150之前,其中的数据块已经被拷贝到对应的目标存储区120中的存储块122,因此,根据本公开的实施例将待写数据(与写请求相关联的数据)直接写入到存储块122,并且更新对应的指示符132中的取值,例如指示符132的取值从0更新为1。
应当理解,在图3的环境300中,即使待写数据只涉及到存储块112的一部分,由于存储块122中已经包括原始的所有数据,因而仍然只需要将待写入数据直接写入到存储块122中以替换其一部分。在一些实施例中,如果写请求涉及到检查点150之前的多个存储块,则需要对与多个存储块相关联的多个指示符进行更新,并且将更新后的指示符同步到对等处理器的高速缓存中。通过这种方式,能够避免对源存储区中的存储块的写入操作。
图4示出了根据本公开的实施例的用于在检查点之后写入数据的示例环境400的示意图。与图3所描述的环境300相比,图4的环境400中接收到的写请求所涉及的存储块在检查点之后。如图4所示,随着拷贝的进行,检查点150的位置从存储块113之后移动到存储块114之后,说明存储块113中的数据块已经拷贝完毕,当前正在将存储块114中的数据拷贝到存储块124。
继续参考图4,例如,在某个时刻,在环境400中接收到针对存储块115的写请求,由于存储块115的位置在检查点150之后,存储块115中的数据还没有被拷贝到存储块125中,此时,需要根据待写数据所涉及的范围来写入数据,这是因为在存储系统中数据拷贝的粒度是单个数据块。
在一些实施例中,在待写数据涉及存储块115的整体的情况下,可以将待写数据直接写入到存储块125中。在一些实施例中,在待写数据仅涉及存储块115的一部分的情况下(即,与写请求相关联的数据与个体存储块的大小不匹配),从源存储区110读取存储块115,利用待写数据更新存储块115中对应位置的数据以生成更新的数据,然后在存储块125中写入更新的数据。换句话说,由于检查点在存储块115之前,存储块125中没有数据,如果仅将待写数据写入到存储块125,其只占存储块125的一部分而不是整体,而数据拷贝是以存储块为粒度,所以在后续拷贝过程中,将存储块115中的数据块拷贝到存储块125时将会覆盖之前写入到存储块125中的数据。因此,在待写数据仅涉及存储块115的一部分的情况下,需要从源存储区读取存储块中的数据。
根据本公开的实施例,利用待写数据更新存储块115中的数据,然后将更新的数据写入到存储块125中,同时实现了针对存储块115的拷贝和针对存储块115的数据写入。此外,在完成拷贝、更新以及写入操作之后,可以将存储块115的拷贝元数据标记为已拷贝,并且将指示符135更新为已经接收到写请求。
图5示出了根据本公开的实施例的用于在拷贝期间读取数据的方法500的流程图。例如,方法500可以由存储系统中的处理器来执行。应当理解,方法500可以在参考图2所描述的方法200之前或之后执行,也可以与方法200同时执行。由于使用指示符来指示每个存储块在拷贝期间是否接收到写请求,因而针对源存储区的读请求的操作也相应地发生变化。应当理解,方法500是针对拷贝期间读取数据的方法,而在拷贝开始之前,可以直接从源存储区读取数据;在拷贝完成之后,可以直接从目标存储区读取数据。
在502,在拷贝期间,接收到针对源存储区的读请求。在504,判断读请求是否涉及多个存储块(即是否跨个体存储块的边界)。在506,如果读请求不涉及多个存储块,即只涉及单个存储块或其一部分,则可以基于指示符确定目标存储区中是否存在待读数据(即,与读请求相关联的数据)。在一些实施例中,如果目标存储区中存在待读数据,则可以从目标存储区读取数据;否则,可以从源存储区读取数据。例如,参考图3所描述的环境300,如果接收到针对存储块112的读请求,由于指示符指示目标存储区120中包括新写入的数据,而源存储区110中仅存在原始数据,所以应当从目标存储区120中的对应存储块122读取数据。
如果读请求涉及多个存储块,在508,可以判断目标存储区是否存在待读数据。如果目标存储区不存在待读数据,则在510,从源存储区读取数据。如果目标存储区存在待读数据,则在512,判断目标存储区是存在待读数据的整体还是仅存在待读数据的一部分。
如果目标存储区仅存在待读数据的一部分,则在514,从目标存储区读取一部分数据,并且在516从源存储区读取其他数据。例如,参考图4所描述的示例,如果接收到针对存储块115和116二者的请求,基于检查点、拷贝元数据以及指示符可以确定目标存储区中仅存在待读数据的一部分,即,仅存在存储块115中的对应数据,而不存在存储块116中的对应数据。因此,根据本公开的实施例可以从目标存储区120读取存储块125中的数据,而从源存储区110读取存储块116中的数据。如果目标存储区存在待读数据的整体,则在518,可以直接从目标存储区读取数据。
根据本公开的实施例,针对每个个体存储块,如果其指示符指示在拷贝期间存在写请求,则直接从目标存储区读取数据。如果个体存储块的指示符指示在拷贝期间不存在写请求,则判断该存储块是在检查点之前还是之后,如果在检查点之前,则从源存储区读取数据;如果在检查点之后,则从目标存储区读取数据。因此,在本公开的实施例中,在数据拷贝期间接收到读请求时,可以基于读请求所涉及的存储块的数目、所涉及的存储块的位置以及检查点来使用不同的读取方式。因此,即使仅将拷贝期间的数据写入到目标存储区,仍能够保证有效地读取数据,因而提高了存储系统的IO性能。
图6示出了根据本公开的实施例的用于在拷贝期间处理故障的方法600的流程图。例如,方法600可以由存储系统中的处理器来执行。方法600可以在参考图2所描述的方法200之前或之后执行,或者与方法200同时执行。在双活的存储系统中,通常存在两个处理器,这两个处理器形成主动-主动的模式,即两个处理器都能够执行控制操作。
在602,由第一处理器(也称为“主存储器”)执行拷贝操作,并且在拷贝期间,在第一处理器和第二处理器(也称为“辅存储器”)之间同步指示符,使得指示符在两个处理器之间能够实时同步。在一些实施例中,指示符仅被存储在处理器的高速缓存中,而不被存储到持久性存储装置(例如盘)中。在604,判断在拷贝期间第一处理器是否发生故障。如果在拷贝期间第一处理器没有发生故障,则在606由第一处理器继续执行拷贝操作,并且在完成拷贝之后删除指示符。
如果在拷贝期间第一处理器发生故障,则在608,进一步判断在拷贝期间第二处理器是否也发生故障。如果第二处理器没有发生故障,则在610,第二处理器接管第一处理器的控制操作。例如第二处理器可以从检查点开始继续执行拷贝操作,并且第二处理器可以基于拷贝元数据和指示符来处理针对源存储区的读请求。如果第二处理器在拷贝期间也发生故障,则在612,在重启两个处理器之后获得针对写请求的标志,其中标志指示在拷贝期间是否存在写请求,由于该标志被存储在盘中,因而在第一处理器和第二处理器都发生故障的情况下,不会丢失该标志的状态。
接下来,在614,基于标志判断在拷贝期间是否存在写请求。如果标志指示在拷贝期间不存在写请求,说明在拷贝期间待拷贝的数据未被修改过,则在616,可以初始化指示符并从检查点开始继续执行拷贝操作,例如可以在第一处理器或第二处理器重启并恢复正常工作之后继续执行拷贝操作。如果标志指示在拷贝期间存在写请求,则说明在拷贝期间待拷贝的数据被修改,但是由于丢失了指示符,不能确定哪个或哪些存储块中的数据被修改,因此,在618,可以放弃执行拷贝操作,并且在目标存储区上重建数据,从而通过例如RAID的恢复机制来保证数据的正确性和可靠性。
此外,本公开的实施例还提供了用于在拷贝期间处理存储区(例如盘)故障的方案。在一些实施例中,在拷贝期间,如果源存储区(例如源存储区110)发生故障(例如被移除、已损坏等),则需要基于拷贝元数据来在目标存储区上重建尚未被拷贝的数据,而对于其他部分,目标存储区中已经通过拷贝操作具有那些数据,因而不需要被重建,由此提高了重建速度。在一些实施例中,如果在拷贝期间目标存储区(例如目标存储区120)发生故障,由于源存储区不存在拷贝期间写入的数据,因而需要在源存储区上重建根据指示符而确定的写入数据。以这种方式,在处理器或者存储区(例如盘)发生故障的情况下,能够有效地处理故障,从而保证数据的完整性和准确性。在一些实施例中,如果源存储区和目标存储区都发生故障,则可以使用的第三存储区,并且在第三存储区上重建数据。
在一些实施例中,本公开的实施例的方法可以被用于映射RAID中,术语“映射RAID(mapped RAID)”表示能够使用RAID中的多个盘来并行重建故障盘的RAID。例如,在映射RAID中利用目标存储区替换源存储区或者增加目标存储区的情况下,可以发起从源存储区向目标存储区的数据拷贝。以下图7和图8示出了根据本公开的实施例的映射RAID的示例性架构700和800的示意图。
参考图7,其图示了在N个盘上使用“4D+1P”的RAID 5的示例,其中N大于5。映射RAID可以由比传统RAID更多的盘构成,并且每个盘可以被视为是连续的、非重叠的、固定大小的盘区的集合。如图7所示,映射RAID包括N个盘,分别被表示为盘D0、D1、D2、D3…D(N-1),每个盘被划分成多个大小相等的盘区。在图7所示出的映射RAID中,盘区A1、A2、A3、A4和A5组成一个RAID条带(也称为RAID区),以用于保存数据,其中A1-A4可以为数据存储块,而A5可以为奇偶校验信息块。此外,盘区B1、B2、B3、B4和B5组成另一个RAID条带,并且盘区C1、C2、C3、C4和C5组成又一个RAID条带。
如图7所示,如果需要创建RAID条带,则可以随机地从5个不同的盘选择5个盘区。因此,数据和校验信息将最终被分布到所有盘中的消耗的盘区(在图1中以702示出)中。此外,还可以在每个盘上预留一些盘区作为热空闲盘区(在图1中以704示出),而不是像传统RAID 5那样预留整个盘来做热空闲盘。当一个盘发生故障时,针对故障盘上的每个盘区可以随机选择其他盘上的一个盘区作为替代。
如图8所示,当盘D4发生故障时,针对盘D4上的每个消耗的盘区(在图8中以702示出,例如盘区A4和C3)可以随机选择其他盘上的一个热空闲盘区(在图8中以704示出)作为替代。例如,盘区A4被重建并被写入到盘D3中的一个空闲的盘区中,而盘区C3被重建并被写入到盘D(N-1)的中一个空闲的盘区中。对于盘区选择的限制在于需要始终保证每个RAID条带跨越5个不同盘。因此,利用映射RAID技术,RAID中多个甚至所有盘将可能被应用于故障盘的重建过程中。此外,由于不存在单个热空闲盘并且多个盘区的重建和写入能够并行执行,因而RAID的重建速度将被大幅度增高。
本申请的发明人发现,映射RAID具有比传统的非映射RAID更多的拷贝需求。例如,如果映射RAID中的某个盘将要报废(被标记为结束生命EOL),需要在该盘报废之前将数据移动到一个正常的盘,这称之为主动(PACO)拷贝场景。再例如,映射RAID中的数据分布不均匀,需要在映射RAID中添加新的盘以使得负载平衡,这称之为改组(shuffle)拷贝场景。
在映射RAID中,通常使用镜像重建算法来实现数据拷贝,源存储区和目标存储区组成镜像对,其使用镜像库来从将数据从源存储区移动到目标存储区。在一些实施例中,在映射RAID中,可以使用映射表来表示每个条带,可选地,可以在映射表中增加表示拷贝目标的一列。如果这一列为空,则表示没有拷贝操作。如果该列具有拷贝目标的存储区(例如盘区)的信息,则说明需要执行数据拷贝操作。应当注意,映射RAID中存在多个条带,每个条带可以具有各自的拷贝操作。一般来说,不同条带的拷贝操作不会同时执行;相反,当一个条带的拷贝操作完成之后,另一个条带的拷贝操作才会开始。
由于映射RAID中对于数据拷贝的需求较大,因而本公开的实施例的方法特别适合于映射RAID中盘替换和盘增加的场景,由此提升映射RAID的IO性能。例如,在盘替换的主动拷贝的场景中,源存储区被标记为终止,本公开的实施例的方法由于减少对源存储区的写入,从而能够延长源存储区的寿命。再例如,在盘增加的改组拷贝场景中,本公开的实施例也能够减少源存储区的写入,并且使得源存储区减少磨损。此外,由于本公开的实施例仅需写入目标存储区而不需要写入源存储区,因此还能够减少数据写入的执行时间。
图9示出了可以用来实施本公开的实施例的设备900的示意性块图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个方法或过程可由处理单元901执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法200、500和600中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法200、500和600可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或块图中的一个或多个方块中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或块图中的一个或多个方块中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或块图中的一个或多个方块中规定的功能/动作。
附图中的流程图和块图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或块图中的每个方块可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,块图和/或流程图中的每个方块、以及块图和/或流程图中的方块的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (21)

1.一种用于写入数据的方法,包括:
在从源存储区向目标存储区拷贝第一数据期间,接收针对所述源存储区中的第一存储块的写请求;
在所述目标存储区的第二存储块中写入与所述写请求关联的第二数据,所述第二存储块对应于所述第一存储块;以及
更新与所述第一存储块相关联的指示符,所述指示符指示所述第二数据是在所述拷贝期间由所述写请求写入;
其中写入所述第二数据包括:
确定针对所述拷贝的检查点,所述检查点指示所述拷贝在所述源存储区中的进度;以及
基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据。
2.根据权利要求1所述的方法,其中基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据包括:
响应于所述第一位置在所述检查点之前,在所述第二存储块中直接写入所述第二数据。
3.根据权利要求1所述的方法,其中基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据包括:
响应于所述第一位置在所述检查点之后,确定所述第二数据是否涉及所述第一存储块的整体;以及
响应于确定所述第二数据涉及所述第一存储块的整体,在所述第二存储块中直接写入所述第二数据。
4.根据权利要求3所述的方法,其中基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据还包括:
响应于确定所述第二数据涉及所述第一存储块的一部分,
从所述源存储区读取所述第一存储块;
利用所述第二数据更新所述第一存储块中对应位置的数据以生成更新的第二数据;以及
在所述第二存储块中写入所述更新的第二数据。
5.根据权利要求1所述的方法,还包括:
响应于在所述拷贝期间接收到针对所述源存储区中的多个存储块的读请求,基于与所述多个存储块相关联的多个指示符,确定所述目标存储区是否包括与所述读请求有关的第三数据;以及
响应于所述目标存储区包括所述第三数据的一部分:
从所述目标存储区读取所述第三数据的所述一部分;以及
从所述源存储区读取所述第三数据的其他部分。
6.根据权利要求1所述的方法,其中所述拷贝由第一处理器执行,并且所述方法还包括:
在所述拷贝期间,在所述第一处理器和第二处理器之间同步所述指示符,所述第二处理器和所述第一处理器构成双活处理器;以及
在完成所述拷贝之后,删除所述指示符。
7.根据权利要求6所述的方法,还包括:
响应于在所述拷贝期间所述第一处理器发生故障,由所述第二处理器基于所述指示符来处理针对所述源存储区的读请求。
8.根据权利要求6所述的方法,还包括:
响应于在所述拷贝期间所述第一处理器和所述第二处理器二者发生故障:
获得针对所述写请求的标志;以及
响应于所述标志指示所述拷贝期间存在所述写请求,在所述目标存储区上重建数据。
9.根据权利要求1所述的方法,还包括:
响应于在所述拷贝期间所述源存储区发生故障,在所述目标存储区上重建所述第一数据中尚未被拷贝的部分;以及
响应于在所述拷贝期间所述目标存储区发生故障,基于所述指示符在所述源存储区上至少重建所述第二数据。
10.根据权利要求1所述的方法,还包括:
响应于在映射独立盘冗余阵列中利用所述目标存储区替换所述源存储区或者增加所述目标存储区,从所述源存储区向所述目标存储区拷贝所述第一数据,所述映射独立盘冗余阵列能够使用多个盘来重建故障盘。
11.一种用于写入数据的设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
在从源存储区向目标存储区拷贝第一数据期间,接收针对所述源存储区中的第一存储块的写请求;
在所述目标存储区的第二存储块中写入与所述写请求关联的第二数据,所述第二存储块对应于所述第一存储块;以及
更新与所述第一存储块相关联的指示符,所述指示符指示所述第二数据是在所述拷贝期间由所述写请求写入;
其中写入所述第二数据包括:
确定针对所述拷贝的检查点,所述检查点指示所述拷贝在所述源存储区中的进度;以及
基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据。
12.根据权利要求11所述的设备,其中基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据包括:
响应于所述第一位置在所述检查点之前,在所述第二存储块中直接写入所述第二数据。
13.根据权利要求11所述的设备,其中基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据包括:
响应于所述第一位置在所述检查点之后,确定所述第二数据是否涉及所述第一存储块的整体;以及
响应于确定所述第二数据涉及所述第一存储块的整体,在所述第二存储块中直接写入所述第二数据。
14.根据权利要求13所述的设备,其中基于所述检查点和所述第一存储块在所述源存储区中的第一位置来写入所述第二数据还包括:
响应于确定所述第二数据涉及所述第一存储块的一部分,
从所述源存储区读取所述第一存储块;
利用所述第二数据更新所述第一存储块中对应位置的数据以生成更新的第二数据;以及
在所述第二存储块中写入所述更新的第二数据。
15.根据权利要求11所述的设备,所述动作还包括:
响应于在所述拷贝期间接收到针对所述源存储区中的多个存储块的读请求,基于与所述多个存储块相关联的多个指示符,确定所述目标存储区是否包括与所述读请求有关的第三数据;以及
响应于所述目标存储区包括所述第三数据的一部分:
从所述目标存储区读取所述第三数据的所述一部分;以及
从所述源存储区读取所述第三数据的其他部分。
16.根据权利要求11所述的设备,其中所述拷贝由第一处理器执行,并且所述动作还包括:
在所述拷贝期间,在所述第一处理器和第二处理器之间同步所述指示符,所述第二处理器和所述第一处理器构成双活处理器;以及
在完成所述拷贝之后,删除所述指示符。
17.根据权利要求16所述的设备,所述动作还包括:
响应于在所述拷贝期间所述第一处理器发生故障,由所述第二处理器基于所述指示符来处理针对所述源存储区的读请求。
18.根据权利要求16所述的设备,所述动作还包括:
响应于在所述拷贝期间所述第一处理器和所述第二处理器二者发生故障:
获得针对所述写请求的标志;以及
响应于所述标志指示所述拷贝期间存在所述写请求,在所述目标存储区上重建数据。
19.根据权利要求11所述的设备,所述动作还包括:
响应于在所述拷贝期间所述源存储区发生故障,在所述目标存储区上重建所述第一数据中尚未被拷贝的部分;以及
响应于在所述拷贝期间所述目标存储区发生故障,基于所述指示符在所述源存储区上至少重建所述第二数据。
20.根据权利要求11所述的设备,所述动作还包括:
响应于在映射独立盘冗余阵列中利用所述目标存储区替换所述源存储区或者增加所述目标存储区,从所述源存储区向所述目标存储区拷贝所述第一数据,所述映射独立盘冗余阵列能够使用多个盘来重建故障盘。
21.一种非瞬态计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在被执行时使计算机执行根据权利要求1至10中任一项所述的方法。
CN201810049266.3A 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品 Active CN110058787B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810049266.3A CN110058787B (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品
CN202210684044.5A CN115098021A (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品
US16/250,140 US10831401B2 (en) 2018-01-18 2019-01-17 Method, device and computer program product for writing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810049266.3A CN110058787B (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210684044.5A Division CN115098021A (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN110058787A CN110058787A (zh) 2019-07-26
CN110058787B true CN110058787B (zh) 2022-06-24

Family

ID=67212473

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210684044.5A Pending CN115098021A (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品
CN201810049266.3A Active CN110058787B (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210684044.5A Pending CN115098021A (zh) 2018-01-18 2018-01-18 用于写入数据的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US10831401B2 (zh)
CN (2) CN115098021A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104047B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
CN112306372A (zh) * 2019-07-31 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
CN112764661A (zh) 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN113448877A (zh) * 2020-03-26 2021-09-28 伊姆西Ip控股有限责任公司 用于数据存储的方法、设备和计算机程序
CN114385069B (zh) 2020-10-22 2024-05-17 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN114116746A (zh) * 2021-11-24 2022-03-01 北京字节跳动网络技术有限公司 多系统数据存储方法、装置、介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101501652A (zh) * 2005-03-04 2009-08-05 伊姆西公司 检查点及一致性标记符

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133982B2 (en) * 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
US7651593B2 (en) * 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US20120144110A1 (en) * 2010-12-02 2012-06-07 Lsi Corporation Methods and structure for storage migration using storage array managed server agents
US10176183B1 (en) * 2012-10-31 2019-01-08 EMC IP Holding Company LLC Method and apparatus for reducing overheads of primary storage while transferring modified data
US20140201434A1 (en) * 2013-01-15 2014-07-17 Hewlett-Packard Development Company, L.P. Managing Volatile File Copies
US9928246B1 (en) 2014-03-31 2018-03-27 EMC IP Holding Company LLC Managing snapshots of data
US9747047B2 (en) * 2014-06-25 2017-08-29 International Business Machines Corporation Performing a remote point-in-time copy to a source and target storages in further mirror copy relationships
US9519674B2 (en) * 2014-09-10 2016-12-13 Amazon Technologies, Inc. Stateless datastore-independent transactions
US10210052B1 (en) 2015-10-27 2019-02-19 EMC IP Holding Company LLC Logless backup of databases using internet SCSI protocol
US10310949B1 (en) 2016-12-22 2019-06-04 EMC IP Holding Company LLC Disaster restore of big data application with near zero RTO
US10152387B1 (en) 2016-12-23 2018-12-11 EMC IP Holding Company LLC Instant start of virtual machine from archive copy on backup media
US10235066B1 (en) 2017-04-27 2019-03-19 EMC IP Holding Company LLC Journal destage relay for online system checkpoint creation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101501652A (zh) * 2005-03-04 2009-08-05 伊姆西公司 检查点及一致性标记符

Also Published As

Publication number Publication date
US20190220221A1 (en) 2019-07-18
CN115098021A (zh) 2022-09-23
US10831401B2 (en) 2020-11-10
CN110058787A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN110058787B (zh) 用于写入数据的方法、设备和计算机程序产品
CN109213618B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN110389858B (zh) 存储设备的故障恢复方法和设备
JP6452712B2 (ja) 分散データ・ストレージ・システムにおけるデータ回復を向上させる方法、システム、およびコンピュータ・プログラム
US9690651B2 (en) Controlling a redundant array of independent disks (RAID) that includes a read only flash data storage device
US11003558B2 (en) Systems and methods for sequential resilvering
US11449400B2 (en) Method, device and program product for managing data of storage device
CN110058965B (zh) 存储系统中的数据重建方法及设备
US11080149B2 (en) Restore current version of a track from a non-volatile storage into a new location in cache
US10503620B1 (en) Parity log with delta bitmap
US8639968B2 (en) Computing system reliability
CN113377569B (zh) 用于恢复数据的方法、设备和计算机程序产品
US10664346B2 (en) Parity log with by-pass
US10740189B2 (en) Distributed storage system
US20160036653A1 (en) Method and apparatus for avoiding performance decrease in high availability configuration
CN111104047B (zh) 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
KR20140142124A (ko) 테이블을 관리하는 저장 장치 및 그 관리 방법
US11163642B2 (en) Methods, devices and computer readable medium for managing a redundant array of independent disks
CN114385412A (zh) 存储管理方法、设备和计算机程序产品
US20210072916A1 (en) Storage performance enhancement
CN113641298A (zh) 数据存储方法、设备和计算机程序产品
US20190196900A1 (en) Networked storage redundancy scheme
US11256583B2 (en) Efficient handling of RAID-F component repair failures
US20230034463A1 (en) Selectively using summary bitmaps for data synchronization
CN115202561A (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