[go: up one dir, main page]

CN116601609A - 将数据存储在计算机存储中 - Google Patents

将数据存储在计算机存储中 Download PDF

Info

Publication number
CN116601609A
CN116601609A CN202080107869.XA CN202080107869A CN116601609A CN 116601609 A CN116601609 A CN 116601609A CN 202080107869 A CN202080107869 A CN 202080107869A CN 116601609 A CN116601609 A CN 116601609A
Authority
CN
China
Prior art keywords
data
computer storage
storing
copy
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080107869.XA
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116601609A publication Critical patent/CN116601609A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Abstract

公开了一种用于将数据存储在计算机存储中的方法。所述方法包括:将数据存储在计算机存储中;将所述数据的纠删码存储在所述计算机存储中;将所述数据的副本存储在所述计算机存储中;根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。存储数据的纠删码可以有利地使得在数据损坏时恢复数据。然而,不利的是,纠删码占用内存空间。在存储所述数据副本之后,将存储纠删码的存储器确认为可用于存储其它数据,有利地释放内存空间来存储其它数据。

Description

将数据存储在计算机存储中
技术领域
本公开涉及将数据存储在计算机存储中。
背景技术
存储在计算机存储系统中的数据可以通过纠删编码(erasure coding)或复制(replication)来保护数据不丢失或不损坏。纠删编码创建一种数学函数将数据的各个部分描述为数据的其它部分的函数,以使得在发生部分丢失或损坏时恢复完整数据。复制创建数据的额外副本,该额外副本可以存储在与原始数据不同的存储设备(例如,不同的磁盘驱动器)中。纠删编码用于保护数据的一个优点在于,纠删码的内存占用空间通常小于纠删码所保护的数据的占用空间。复制用于保护数据的一个优点在于,创建副本和使用该副本恢复数据的计算复杂性相对较低。
发明内容
本公开的目的是提供一种用于将数据存储在计算机存储中的方法,其中,保护所述数据不丢失或不损坏。
上述和其它目的通过独立权利要求的特征来实现。其它实现方式在从属权利要求、说明书和附图中是显而易见的。
本公开的第一方面提供了一种用于将数据存储在计算机存储中的方法。所述方法包括:将数据存储在计算机存储中;将所述数据的纠删码存储在所述计算机存储中;将所述数据的副本存储在所述计算机存储中;以及根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。
在上述方法中,存储在计算机存储中的数据由数据的纠删码(例如,奇偶校验信息)保护。存储数据的纠删码可以有利地实现数据的相对快速保护。因此,数据在短期内丢失或损坏的风险可能会减少。例如,纠删码的内存占用空间相对较小,可以实现纠删码存储在本地存储中,即存储在数据本地的存储中。例如,当数据通过上述方法存储在一个或多个存储设备中时,即使一个或多个存储设备具有相对较小的备用存储容量,纠删码也可以存储在相同的一个或多个存储设备中。因此,通过避免需要将数据传输到外部备份资源以及与之相关的延迟,可以实现数据的相对快速保护。此外,由于纠删码可以存储在本地,在数据丢失时,使用纠删码恢复数据可能比从远程存储设备恢复数据相对更快。
然而,使用纠删码恢复数据在计算上可能相对复杂,因此缺点是消耗存储系统的计算资源,例如,处理器时间。因此,上述方法还包括:存储数据的副本,即复制数据。例如,数据的副本可以通过定期数据备份过程存储,由此副本数据与原始数据存储在不同的存储设备中。与纠删码相比,副本数据的创建和存储时间可能相对较长,例如,因为副本数据的内存占用空间相对较大,需要将副本数据传输到适当大的存储设备,该存储设备可以远离数据的存储位置。但是,在存储数据部分丢失或损坏时,副本数据可以有利地使得在计算上简单恢复数据。
因此,存储数据的纠删码与随后的存储数据的副本相组合,可以有利地通过纠删编码对数据进行早期保护以及通过副本数据对数据进行增强长期保护。
然而,在存储数据的副本之后,即在复制数据之后,可以认为纠删码是多余的,因为随后在数据丢失或损坏的情况下,可以使用数据的副本来恢复数据。同时,纠删码占用存储空间,这在纠删码存储在存储容量相对较小的存储设备中时,会特别成问题。因此,上述方法包括又一步骤:根据将数据的副本存储在计算机存储中的结果,确认存储纠删码的计算机存储可用于存储其它数据。换句话说,在上述方法中,一旦复制完数据并存储好副本数据,上述方法包括:确认纠删码占用的存储空间可由新数据覆盖。在示例中,上述方法甚至还可以包括:在存储副本数据之后,从存储中擦除纠删码。因此,通过上述方法的这一步骤,数据和保护配置的总内存占用空间可以有利地减少。但是,由于上述方法的这一步骤是根据存储数据的副本的结果执行的,因此上述方法是安全的,因为该步骤的执行取决于副本数据的存储。因此,数据既不存在纠删码也不存在副本数据的风险得到减少。
在示例中,所述方法可以包括:通过公共存储设备存储数据、纠删码和副本数据中的两个或两个以上,例如,在同一磁盘驱动器中的不同位置上。在其它示例中,数据、纠删码和副本数据中的两个或两个以上可以由相互不同的存储设备存储。例如,数据和纠删码可以存储在一个或多个存储设备(例如,磁盘驱动器)组成的第一组中,而副本数据可以存储在一个或多个不同的存储设备(例如,磁盘驱动器)中。
上述方法可以包括以下步骤:在存储纠删码之前,创建该纠删码,例如,奇偶校验信息。用于为数据创建纠删码的方法是本领域技术人员已知的。
在本说明书的上下文中,除非另有说明,术语“存储器”(例如,计算机存储器)和“内存”(例如,计算机内存)都用于泛指用于存储数据的存储资源。在这方面,每个术语都旨在包括用于长期存储数据的存储资源(例如,磁盘驱动器、固态驱动器或闪存)以及用于短期存储数据的存储资源(例如,随机存取存储器)。
在一种实现方式中,所述将数据存储在计算机存储中包括:将所述数据的第一段存储在第一计算机存储设备中,以及将所述数据的第二段存储在第二计算机存储设备中。
换句话说,上述方法可以包括:将数据分布在多个存储设备中,以下称为分带。数据的分带可以有利地提高数据读取/写入性能,这是因为数据的各段可以同时从它们各自的存储设备中读取/写入它们各自的存储设备中。此外,在多个设备上对数据进行分带减少了在存储设备的子集发生故障时会丢失的数据的比例。因此,纠删码只对丢失相对较少的数据具有适应能力,这通常是可接受的。这可以有利地降低纠删码的复杂性,从而降低生成纠删码和使用纠删码来恢复数据的复杂性。在示例中,上述方法可以包括:将数据存储在两个以上段中,可选地存储在两个以上存储设备中。例如,在示例中,上述方法可以包括:将数据以五个或六个段存储在五个或六个存储设备中。上述方法可以包括以下步骤:在存储数据之前,将该数据分割成两个或两个以上段。
在一种实现方式中,所述将所述数据的副本存储在所述计算机存储中包括:将所述数据的副本存储在与存储所述数据的计算机存储设备分开和/或与存储所述纠删码的计算机存储设备分开的一个或多个计算机存储设备中。
换句话说,在示例中,上述方法包括:将副本数据存储在物理上与存储数据的存储设备和存储纠删码的存储设备中的至少一个分开的存储设备中。副本数据与数据和/或纠删码的这种分开有利地降低了在存储设备发生故障时丢失副本数据和数据或纠删码的可能性。在示例中,数据和纠删码可以存储在一个或多个存储设备(例如,硬盘)中,而副本数据可以存储在一个或多个单独的存储设备中。
在一种实现方式中,所述方法还包括:将标识所述数据的所述副本的位置的位置数据存储在所述计算机存储中。
换句话说,位置数据限定副本数据在计算机存储中的机器可读地址。例如,位置数据可以标识副本数据所在的存储设备编号和/或偏移。因此,位置数据可以有利地使得副本数据从计算机存储中容易检索到,这在数据丢失时可能是有用的。例如,位置数据可以由内存控制器在存储副本数据时生成。
在一种实现方式中,所述将标识所述数据的所述副本的位置的位置数据存储在所述计算机存储中包括:将所述位置数据存储在存储所述数据的所述副本的计算机存储设备中。
换句话说,位置数据可以与副本数据的至少一部分存储在相同的存储设备中。这种设置的优点在于,位置数据可以易于由用于访问副本数据的内存控制器访问。因此,在数据丢失导致需要副本数据时,同一内存控制器可以读取位置数据并检索副本数据。这可以有利地减少使用副本数据来恢复数据所需的时间。例如,副本数据可以存储在单个存储设备中,而位置数据可以存储在该相同的存储设备中。在这一示例中,位置数据可以标识副本数据在存储设备中的偏移。在另一个示例中,副本数据可以分布在多个存储设备上,而位置数据可以存储在这些多个设备中的一个设备中。
在一种实现方式中,所述方法还包括:根据所述将所述数据的副本存储在所述计算机存储中的结果,将标记存储所述数据的所述计算机存储的标志存储在所述计算机存储中。
换句话说,上述方法可以包括:在存储副本数据之后,标记存储中存储数据的位置。因此,标志可以标识计算机存储的位置,包括全部或部分数据,这些数据已经通过复制(即通过存储副本数据)得到保护。因此,标志可以用于方便地确认是否已经复制数据,即是否已经存储副本数据。这样做的一个优点在于,内存管理器能够简单地通过读取标志来确定是否已经复制数据,因此,在数据丢失时可以知道是否可以检索到副本数据。
在一种实现方式中,所述方法还包括:将其它数据存储在确认可用于存储其它数据的所述计算机存储中。换句话说,上述方法还可以包括:在复制数据之后,覆盖所述计算机存储中存储所述纠删码的一个或多个位置。
在一种实现方式中,所述将所述数据的纠删码存储在所述计算机存储中包括:将所述纠删码存储在存储所述数据的一个或多个计算机存储设备中。换句话说,纠删码可以与数据存储在相同的一个或多个存储设备中。鉴于纠删码是根据数据生成的,这种设置可以减少生成和存储纠删码所需的时间,因为纠删码生成器可以从相同的一个或多个存储设备中读取和写入相同的一个或多个存储设备中。
在一种实现方式中,所述将所述数据的纠删码存储在所述计算机存储中包括:将第一纠删码和第二纠删码存储在所述计算机存储中,其中,所述第一纠删码和所述第二纠删码相互独立;根据所述在所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据包括:根据所述将所述数据的副本存储在所述计算机存储中的结果,确认只有存储所述数据的所述第二纠删码的所述计算机存储可用于存储其它数据。
换句话说,上述方法可以包括:存储两个相互独立的纠删码,即纠删码都可在数据的各个部分上独立于其它纠删码进行操作,以重新创建数据。与单个纠删码相比,为数据创建/存储两个纠删码可以有利地提高数据适应能力,因为其中一个纠删码本身可能会丢失或损坏,而数据仍然可以使用剩余的纠删码来恢复。然而,在上述方法的所述实现方式中,在复制数据之后只选择覆盖其中一个纠删码(即第二纠删码),而将第二纠删码保留在存储中。这种设置可以有利地平衡数据恢复能力与保护的内存占用空间。在生成多个纠删码的其它示例中,可以在复制数据之后选择覆盖所有纠删码。
在一种实现方式中,所述方法还包括:对存储在所述计算机存储中的所述数据执行错误检测操作;响应于检测到存储在所述计算机存储中的所述数据存在错误,检索存储在所述计算机存储中的所述数据的所述副本。
换句话说,在示例中,上述方法可以包括:测试数据以检查错误,例如,数据的部分或全部丢失或损坏,并且响应于检测到数据丢失/损坏,上述方法可以包括:检索副本数据。这种“主动”测试数据和检索副本数据的过程可以减少数据丢失和使用副本数据来恢复数据之间的时间,从而可以有利地最小化客户端在数据丢失后访问数据的时间。
本公开的第二方面提供了一种计算机程序。所述计算机程序包括指令,当所述指令由处理器执行时,使得所述处理器执行以下操作:将数据存储在计算机存储中;将所述数据的纠删码存储在所述计算机存储中;将所述数据的副本存储在所述计算机存储中;根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。
在所述第二方面的一种实现方式中,所述计算机程序包括指令,当所述指令由处理器执行时,使得所述处理器执行本公开第一方面的任一种实现方式提供的方法。
本公开的第三方面提供了一种计算机可读数据载体。所述计算机可读数据载体中存储有本公开第二方面提供的计算机程序。
本公开的第四方面提供了一种计算系统。所述计算系统包括计算机存储和耦合到所述计算机存储的处理器,所述处理器用于:将数据存储在计算机存储中;将所述数据的纠删码存储在所述计算机存储中;将所述数据的副本存储在所述计算机存储中;根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。
在所述第三方面的一种实现方式中,所述处理器用于执行本公开第一方面的任一种实现方式提供的方法。
本公开的这些和其它方面在下面描述的一个或多个实施例中是显而易见的。
附图说明
为了更容易理解本公开,下面结合附图通过举例描述本公开实施例,在附图中:
图1是体现本公开一方面的计算系统的一个示例的示意图;
图2是计算系统中的计算机内存的示意图;
图3是计算系统中的计算机存储装置的示意图;
图4是用于将数据存储在参考图3标识的计算机存储装置中的示例性方法中包括的过程的示意图,所述方法包括分割数据进行存储的方法;
图5是分割数据进行存储的方法中包括的过程的示意图;
图6是存储位置数据的过程的示意图;
图7是将标志存储在计算机存储中的过程的示意图;
图8是确认存储纠删码的计算机存储可用于存储其它数据的过程的示意图;
图9是将其它数据存储在计算机存储的已标识位置上的过程的示意图;以及
图10是执行错误检测操作的过程的示意图。
具体实施方式
首先统一参考图1和图2,体现本公开一方面的一个示例的计算系统101包括多个客户端设备102和103、计算机存储系统104和备份存储系统105。客户端设备102和103通过网络106以通信方式耦合到计算机存储系统104。计算机存储系统104通过网络107以通信方式耦合到备份存储系统105。
客户端设备102和103使用计算机存储系统104来存储数据。例如,客户端设备102和103可以通过网络106向计算机存储系统104发送存储或检索数据的请求,并且可以类似地通过网络106与计算机存储系统104交换用于存储或检索的数据。客户端设备102和103可以是,例如,台式计算机、便携式计算机或智能手机。客户端设备102和103可以包括计算功能,例如,计算机处理器。在上述示例中,两个客户端设备102和103是描述为耦合到计算机存储系统104。在其它示例中,耦合到计算机存储系统104的客户端设备的数量可以大于或小于两个。客户端设备102和103可以远离计算机存储系统104,实际上是彼此相对远离。例如,计算机存储系统104可以位于中央数据中心内。因此,客户端设备102和103可以使用计算机存储系统104中的存储资源来存储数据。
计算机存储系统104用于为多个客户端设备(例如,客户端设备102和103)提供存储资源。如下所述,在上述示例中,计算机存储系统104用于与客户端设备102和103进行通信以存储和检索数据,还用于与备份存储系统105进行通信以存储在计算机存储系统104中的数据的副本,即存储到备份存储系统104中。
计算机存储系统104包括处理器108、内存109、存储器110、输入/输出接口111和系统总线112。处理器108用于控制计算机存储系统的操作,例如,处理客户端设备102和103的存储和检索请求。如本文所述,在示例中,处理器108用于根据存储在内存109中的数据存储计算机程序,控制数据存储操作的过程。内存109被配置为非易失性读取/写入存储器,用于存储由处理器108执行的计算机程序和与由处理器108执行的操作相关联的操作数据。在示例中,内存109存储有用于控制数据存储的计算机程序201。在示例中,内存109是闪存,但是在其它示例中,闪存可以由替代形式的内存替代。存储器110用于存储数据,例如,用于存储客户端设备102和103的数据。在示例中,如下参考后面的附图详述,存储器110包括多个存储设备,在示例中,这些存储设备是多个磁盘驱动器。输入/输出接口111用于将客户端设备102和103连接到计算机存储系统104,以及用于将计算机存储系统104连接到备份存储和重复数据删除系统105。计算机104中的组件108至111通过系统总线112进行通信。
备份存储系统105用于向计算机存储系统104提供备份存储资源,即用于存储计算机存储系统104中存储的数据的一个或多个副本。数据的备份存储提供了有用的冗余,以使得在原始数据丢失或损坏时(例如,在存储器110发生故障时)恢复数据。备份存储系统105包括处理器112、存储器113、输入/输出接口115和系统总线116。处理器112用于控制备份存储系统105的操作。如本文所述,在示例中,处理器112用于控制与计算机存储系统104进行通信,以及用于与计算机存储系统104合作控制数据备份操作的过程。存储器113用于数据的非易失性存储,例如,用于存储从计算机存储系统104接收到的数据的副本以进行备份。在示例中,存储器113包括一个或多个磁盘驱动器。输入/输出接口115用于将备份存储系统105连接到计算机存储系统104。组件112至115通过系统总线116进行通信。
备份存储系统105可以远离计算机存储系统104。实际上,为了提供计算机存储系统104的备份存储,可能希望备份存储系统105包括物理存储资源,例如,一个或多个磁盘驱动器,该物理存储资源与计算机存储系统104中的存储资源分开,以避免两个存储资源同时发生故障的风险。具体地,在一些示例中,备份存储系统105在地理上远离存储系统104可能是有利的,从而减少两个存储系统同时发生故障的风险。
在示例中,网络106和107都可以由互联网等广域网(wide area network,WAN)、局域网(local area network,LAN)、城域网(metropolitan area network,MAN)和/或个人局域网(personal area network,PAN)等来实现。上述两个网络可以使用有线技术(例如,以太网、有线数据传输业务接口规范(Data Over Cable Service InterfaceSpecification,DOCSIS)、同步光纤网(synchronous optical networking,SONET)和/或同步数字体系(synchronous digital hierarchy,SOH),等等)和/或无线技术(例如,电气和电子工程师学会(Institute of Electrical and Electronics,IEEE)802.11(Wi-Fi)、IEEE 802.15(WiMAX)、蓝牙、ZigBee、近场通信(near-field communication,NFC)和/或长期演进(Long-Term Evolution,LTE),等等)来实现。上述两个网络可以包括用于在网络中进行数据通信的至少一个设备。例如,网络106和107都可以包括计算设备、路由器、交换机、网关、接入点和/或调制解调器。
接下来参考图3,在示例中,计算机存储系统104中的存储器110包括用于存储数据的多个存储设备。在上述示例中,存储器110包括五个分开的存储设备301至305,在示例中,这些存储设备都是磁盘驱动器。五个存储设备301至305通过系统总线306耦合到系统总线116,从而用作可由处理器108单独寻址的逻辑单元。在示例中,如下参考后面的附图详述,由处理器108运行的计算机程序201使得数据以多个段存储在存储器110中,数据结构中的每个段都存储在多个磁盘驱动器中的一个不同的磁盘驱动器中。在示例中,如下所述,例如,通过多个存储设备上的数据段的块级分带,将数据段存储在独立磁盘冗余阵列(redundant array of independent disk,RAID)级别6配置中,其中,两个校验块分布在存储设备上。
因此,在上述示例中,数据项(例如,文件)A到E都存储在存储器110中。数据项A到E都分割成三个段或块1至3,这些段或块的大小可以相等。对于每个数据项A至E,组成段或块1至3在三个存储设备相应组上分带,即分布,使得每个存储设备最多保存数据项A至E各自的三个段/块中的一个。另外,在示例中,对于每个数据项A至E,两个纠删码(例如,奇偶校验Pp和Pq)存储在存储器110中。在示例中,对于每个数据项A至E,数据段/块1至3和各自的奇偶校验Pp和Pq分布在存储设备301至305上,使得每个存储设备最多保存这些数据段/块或校验中的一个。
如下详述,每个数据项A至E的校验Pp和Pq被配置为相互独立,使得奇偶校验Pp和Pq都可以在各自的数据段/块1至3的子集上独立于其它校验进行操作,从而恢复数据。这种配置的优点在于,存储器110对丢失段/块的子集或相应校验具有相对较强的恢复能力。具体地,在上述配置中,对于每个数据项A至E,存储器对段/块1至3中的至多两个或奇偶校验Pp和Pq的丢失具有恢复能力,这是因为数据通常可以从块/段或奇偶校验中的任意三个来重建。
接下来参考图4,在示例中,存储在计算机存储系统104的内存109中的计算机程序201由计算机存储系统104执行,使得处理器108执行包括四个阶段的方法。
在阶段401中,计算机程序201可以使得处理器108将数据存储在存储系统103的存储器110中。例如,阶段401可以响应于存储系统从客户端设备102和103中的一个客户端设备接收到的存储请求(即相应客户端设备要将数据存储在存储系统104中的请求)而启动。响应于这一请求,处理器108则可以将接收到的数据存储在存储器110中。在示例中,如上参考图3所述,并且如图5详细示出,阶段401可以包括:处理器108将接收到的数据的各项(例如,文件)分割成多个段,以在存储器110的存储设备301至305上对这些段进行分带。因此,例如,阶段401可以包括:处理器108将接收到的数据的多个文件(例如,文件A至E)都分割成多个块/段,例如,三个块/段1至3,并且在存储设备301至305中的三个存储设备上对这些段进行分带。因此,在示例中,阶段401可以包括三个阶段501至503,以对数据进行分带,如图5所示。
在阶段402中,计算机程序201可以使得处理器108为在阶段401中存储的数据创建纠删码,例如,奇偶校验,并且将纠删码也存储在存储器110中。在示例中,阶段402可以包括:处理器108为数据创建两个相互独立的纠删码。用于为数据创建纠删码(例如,奇偶校验)的合适过程是本领域技术人员已知的。例如,对于每个数据项(例如,文件)A至E,奇偶校验“p”和“q”可以使用两个不同的函数来计算,例如,奇偶校验“p”可以使用XOR函数根据数组数据来计算,校验“q”可以使用里德所罗门(Reed-Solomon)码来计算。因此,纠删码(例如,奇偶校验)最多可以对存储设备301至305中的两个存储设备发生故障具有恢复能力。
在阶段403中,计算机程序201可以通过在备份存储系统105的存储器113中创建和存储在阶段401中存储的数据的副本,使得处理器108执行复制过程。在示例中,执行阶段402和阶段403之间可能存在延迟。在示例中,例如,为了响应客户端设备102、103的重复存储请求,上述方法中的阶段401和阶段402可以重复执行,而阶段403只能在执行阶段401和阶段402的一些情况之后执行。例如,阶段403的备份操作可以周期性地执行,例如,每天执行,使得在该期间内存储在存储系统104中的所有数据的副本可以在单个时间步长内备份。这可能是一种计算高效的数据复制方法。因此,在阶段403中,存储系统104中的处理器108可以在一个或多个阶段401中创建存储在存储器110中的一个或多个数据项的副本,并且可以通过网络107将副本数据发送给备份存储系统105。存储系统104中的处理器108可以与备份存储系统105中的处理器112进行通信,以使得备份存储系统105将副本数据保存在存储器113中。阶段403可以包括:备份存储系统105将报告发回存储系统104,以确认副本数据的存储。
在示例中,阶段403还可以包括:处理器108使得标识副本数据在备份存储系统105的存储器113中的位置的位置数据被存储。例如,参考图6,在示例中,阶段403可以包括步骤601的过程,即将位置数据与副本数据一起存储在存储器113中。因此,在需要从存储器中检索副本数据时,副本数据在存储器113中的位置可以,例如,由处理器108或112方便标识。
在示例中,阶段403还可以包括:在存储系统104的存储器110中存储一个或多个标志,该标志标记计算机存储器110中存储在阶段403中复制的数据的位置的。因此,这些标志可以识别,例如,向处理器108,存储在存储器110中的已经被复制的部分数据,即备份副本已经存储在备份存储系统105中的数据。因此,在存储器110中的数据丢失时,处理器108能够确认备份存储系统105中是否存在该数据的副本,从而迅速检索副本数据。
在阶段404中,计算机程序201可以使得处理器108根据在阶段403中将数据的副本存储在备份存储中的结果,确认存储器110中用于在阶段402中存储相应数据的纠删码的位置可用于存储其它信息。换句话说,在阶段403中复制数据,使得数据的副本存储在备份系统105中,在此之后,存储系统104中的处理器108可以确定不再需要存储在存储器110中的数据的纠删码,而且纠删码在存储器中占用的位置可以被其它(例如,新)数据覆盖。例如,处理器108可以在存储器110中保留存储器110中可用于(即可以允许用于)存储其它数据的位置的寄存器。在示例中,这一阶段因此可以包括:处理器108修改该寄存器,以在寄存器中确认在阶段402中存储纠删码的位置可用于存储其它数据。因此,在稍后的时间步长中,当处理器108想要确认存储器110中用于存储其它数据的可用位置时,处理器可以查阅寄存器。在其它示例中,阶段404可以包括:处理器108在存储器110中存储纠删码的位置上设置标记,该标记用于确认可用于存储其它数据的存储位置。在示例中,阶段404可以包括:处理器108使得在阶段402中存储的纠删码从它们在存储器110中的相应位置上擦除。
在示例中,阶段404可以包括参考图8描述的阶段801的过程。因此,阶段404可以包括只擦除一组纠删码(例如,奇偶校验“p”),同时即使在阶段403中复制数据之后,也将第二组纠删码(例如,奇偶校验“q”)保存在存储器110中。这可以有利地平衡最大程度减少内存占用空间和维持存储在存储器110中的数据的恢复能力这两个相互冲突的需求。
在示例中,阶段404可以包括参考图9描述的阶段901的过程。因此,阶段404可以包括又一步骤:将其它数据存储在计算机存储器110中在阶段404中确认可用于存储其它数据的位置上。
最后参考图10,在示例中,由处理器108运行的计算机程序201可以使得处理器108执行错误检测操作1001,由此处理器108检查存储在存储器110中的数据的完整性,以检查数据是否丢失或损坏。在处理器检测到数据丢失或损坏时,处理器108则可以从备份存储105的存储器113中检索丢失/损坏数据的副本。换句话说,在示例中,上述方法可以包括:测试数据以检查错误,例如,数据的部分或全部丢失或损坏,并且响应于检测到数据丢失/损坏,上述方法可以包括:检索副本数据。这种“主动”测试数据和检索副本数据的过程可以减少数据丢失和使用副本数据来恢复数据之间的时间,从而可以有利地最小化客户端在数据丢失后访问数据的时间。
本公开的各个方面在本文中已经在计算系统的上下文中描述,该计算系统包括服务远程客户端设备102和103的主存储系统104和远离存储系统104并服务于存储系统104的备份存储系统105。然而,本公开的各个方面相比于这种配置,实用性更广。例如,在本公开的各个方面的简单示例中,计算系统101可以包括整体式设备,而且数据、一个或多个纠删码和副本数据都可以存储在该整体式设备的存储中。在示例中,数据、一个或多个纠删码和副本数据都可以存储在单个存储设备中,例如,存储在单个磁盘驱动器中。这种计算系统可以包括计算机存储,例如,一个或多个存储设备,例如,磁盘驱动器,还包括耦合到存储的处理器,该处理器用于将数据存储在计算机存储中,将数据的纠删码存储在计算机存储中,将数据的副本存储在计算机存储中,以及根据将数据的副本存储在计算机存储中的结果,确认存储数据的纠删码的计算机存储可用于存储其它数据。
虽然已经详细描述了本公开的各个方面及其相关优点,但是应该理解,在不脱离所附权利要求书界定的奔赴买那个的精神和范围的情况下,可以在此做出各种改变、替代和更改。在权利要求书中,词语“包括”不排除其它元件或步骤,并且“一”或“一个”不排除多个。虽然本公开提供的方法的过程在本文中已经描述为按特定顺序发生,但是在本公开的其它示例中,这些方法的过程可以按替代顺序执行,或者甚至可以从方法中省略。

Claims (15)

1.一种用于将数据存储在计算机存储中的方法,其特征在于,所述方法包括:
将数据存储在计算机存储中;
将所述数据的纠删码存储在所述计算机存储中;
将所述数据的副本存储在所述计算机存储中;以及
根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。
2.根据权利要求1所述的方法,其特征在于,所述将数据存储在计算机存储中包括:将所述数据的第一段存储在第一计算机存储设备中,以及将所述数据的第二段存储在第二计算机存储设备中。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述数据的副本存储在所述计算机存储中包括:将所述数据的副本存储在与存储所述数据的计算机存储设备分开和/或与存储所述纠删码的计算机存储设备分开的一个或多个计算机存储设备中。
4.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括:将标识所述数据的所述副本的位置的位置数据存储在所述计算机存储中。
5.根据权利要求4所述的方法,其特征在于,所述将标识所述数据的所述副本的位置的位置数据存储在所述计算机存储中包括:将所述位置数据存储在存储所述数据的所述副本的计算机存储设备中。
6.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括:根据所述将所述数据的副本存储在所述计算机存储中的结果,将标记存储所述数据的所述计算机存储的标志存储在所述计算机存储中。
7.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括:将其它数据存储在确认可用于存储其它数据的所述计算机存储中。
8.根据上述权利要求中任一项所述的方法,其特征在于,所述将所述数据的纠删码存储在所述计算机存储中包括:将所述纠删码存储在存储所述数据的一个或多个计算机存储设备中。
9.根据上述权利要求中任一项所述的方法,其特征在于,所述将所述数据的纠删码存储在所述计算机存储中包括:将第一纠删码和第二纠删码存储在所述计算机存储中,其中,所述第一纠删码和所述第二纠删码相互独立;根据所述在所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据包括:根据所述将所述数据的副本存储在所述计算机存储中的结果,确认只有存储所述数据的所述第二纠删码的所述计算机存储可用于存储其它数据。
10.根据上述权利要求中任一项所述的方法,其特征在于,所述方法还包括:对存储在所述计算机存储中的所述数据执行错误检测操作;响应于检测到存储在所述计算机存储中的所述数据存在错误,检索存储在所述计算机存储中的所述数据的所述副本。
11.一种包括指令的计算机程序,其特征在于,当所述指令由处理器执行时,使得所述处理器执行以下操作:
将数据存储在计算机存储中;
将所述数据的纠删码存储在所述计算机存储中;
将所述数据的副本存储在所述计算机存储中;以及
根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。
12.根据权利要求11所述的计算机程序,其特征在于,所述计算机程序包括指令,当所述指令由处理器执行时,使得所述处理器执行根据权利要求2至10中任一项所述的方法。
13.一种计算机可读数据载体,其特征在于,所述计算机可读数据载体中存储有根据权利要求11或12所述的计算机程序。
14.一种计算系统,其特征在于,所述计算系统包括计算机存储和耦合到所述计算机存储的处理器,所述处理器用于:
将数据存储在所述计算机存储中;
将所述数据的纠删码存储在所述计算机存储中;
将所述数据的副本存储在所述计算机存储中;以及
根据所述将所述数据的副本存储在所述计算机存储中的结果,确认存储所述数据的所述纠删码的所述计算机存储可用于存储其它数据。
15.根据权利要求14所述的计算系统,其特征在于,所述处理器用于执行根据权利要求2至10中任一项所述的方法。
CN202080107869.XA 2020-12-16 2020-12-16 将数据存储在计算机存储中 Pending CN116601609A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/086478 WO2022128080A1 (en) 2020-12-16 2020-12-16 Storing data in computer storage

Publications (1)

Publication Number Publication Date
CN116601609A true CN116601609A (zh) 2023-08-15

Family

ID=74106020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080107869.XA Pending CN116601609A (zh) 2020-12-16 2020-12-16 将数据存储在计算机存储中

Country Status (2)

Country Link
CN (1) CN116601609A (zh)
WO (1) WO2022128080A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117873772B (zh) * 2023-12-14 2024-12-10 天翼云科技有限公司 一种用于ec副本混合冗余存储的数据恢复方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799746B2 (en) * 2012-06-13 2014-08-05 Caringo, Inc. Erasure coding and replication in storage clusters
US9286163B2 (en) * 2013-01-14 2016-03-15 International Business Machines Corporation Data recovery scheme based on data backup status
US20190163374A1 (en) * 2017-11-28 2019-05-30 Entit Software Llc Storing data objects using different redundancy schemes

Also Published As

Publication number Publication date
WO2022128080A1 (en) 2022-06-23

Similar Documents

Publication Publication Date Title
US10303570B2 (en) Method and apparatus for managing data recovery of distributed storage system
US9367394B2 (en) Decoupled reliability groups
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
US10031816B2 (en) Systems and methods for healing images in deduplication storage
CN110058787B (zh) 用于写入数据的方法、设备和计算机程序产品
US20190079834A1 (en) Database Transaction Log Migration
WO2022142544A1 (zh) 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘
CN106339276A (zh) 一种基于数据备份状态的数据恢复方法及系统
US10740189B2 (en) Distributed storage system
US20190354452A1 (en) Parity log with delta bitmap
US8639968B2 (en) Computing system reliability
EP3794451B1 (en) Parity log with by-pass
US11487628B1 (en) System and method for rapidly transferring and recovering large data sets
US9286163B2 (en) Data recovery scheme based on data backup status
CN102629223B (zh) 一种数据修复方法及装置
US20230350753A1 (en) Storage system and failure handling method
CN116601609A (zh) 将数据存储在计算机存储中
US11055190B1 (en) System and method for facilitating storage system operation with global mapping to provide maintenance without a service interrupt
US10585764B2 (en) Data storage system comprising primary and secondary storage systems
CN114610235B (zh) 分布式存储集群、存储引擎、两副本存储方法及设备
CN115878381A (zh) 基于srm盘的数据恢复方法及装置、存储介质、电子装置
US11494090B2 (en) Systems and methods of maintaining fault tolerance for new writes in degraded erasure coded distributed storage
US10747610B2 (en) Leveraging distributed metadata to achieve file specific data scrubbing
US20210232421A1 (en) Implementing erasure coding with persistent memory
US12346196B2 (en) Extended protection storage system PUT operation

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