CN116249969A - 具有内置冗余的数据存储系统以及恢复和存储数据的方法 - Google Patents

具有内置冗余的数据存储系统以及恢复和存储数据的方法 Download PDF

Info

Publication number
CN116249969A
CN116249969A CN202080105652.5A CN202080105652A CN116249969A CN 116249969 A CN116249969 A CN 116249969A CN 202080105652 A CN202080105652 A CN 202080105652A CN 116249969 A CN116249969 A CN 116249969A
Authority
CN
China
Prior art keywords
data
nodes
storage system
parity
data storage
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
CN202080105652.5A
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 CN116249969A publication Critical patent/CN116249969A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/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; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

具有内置冗余的数据存储系统包括n个节点,所述n个节点中的k个节点是数据节点,以及所述n个节点中的r个节点是奇偶校验节点,k、n和r为整数,并且n=k+r。该系统是基于日志的存储系统,其中,数据作为日志条目存储,所述日志条目分布在所有节点上,分包数为8或更小。第一集合包括被指定为快速恢复节点的f个数据节点,以及第二集合包括其余数据节点。奇偶校验节点中的第一奇偶校验节点使用奇偶校验,使得在单个数据节点发生故障时能够实现数据子包恢复。一个或更多个附加的奇偶校验节点使用奇偶校验,使得对于第一集合,所有奇偶校验一起用于恢复数据,而无需从所有数据节点读取所有数据。数据存储系统被设置成将属于需要快速恢复的逻辑单元的数据存储在第一集合中的数据节点中。

Description

具有内置冗余的数据存储系统以及恢复和存储数据的方法
技术领域
本公开内容总体上涉及数据存储领域,并且更具体地,涉及具有内置冗余的数据存储系统、在数据存储系统中恢复数据的方法以及在数据存储系统中存储数据的方法。
背景技术
在存储系统中使用了几种技术来为存储系统提供容错(故障容错)。当存储系统发生故障(例如,由于其组件故障、软件故障等)时,会发生不希望的数据丢失。由于存储系统中的故障是不可避免的,因此正在改进和进一步开发存储系统的容错技术。
独立冗余磁盘阵列(redundant array of independent disk,RAID)配置在传统存储系统中已广泛使用。在示例中,RAID配置例如RAID 5和RAID 6分别用于在一个磁盘故障和两个磁盘故障的情况下重建丢失的数据。在RAID 5和RAID 6配置中,奇偶校验信息分布在所有磁盘之间。需要说明的是,RAID 5和RAID 6在磁盘故障的情况下需要从所有其余磁盘读取所有数据。因此,使用RAID 5或RAID 6重建丢失的数据需要相当长的时间。
实际上,任何现代存储系统都支持RAID 6。然而,由于与传统存储系统相比,现代存储系统的存储容量要大得多,所以RAID配置并不是现代存储系统最适合的方案,因为多TB现代存储系统的重建时间可能在几天左右。与RAID配置关联的这种技术问题限制了其在现代存储系统中的使用。
如今,现代存储系统也开始支持现代码以实现容错。这些现代码可以是或者也可以不是极小距离可分(minimum distance separable,MDS)码。此外,现代码支持比RAID配置更快地重建(即恢复)数据,但需要的存储比最佳需要的存储要多得多。换句话说,现代码与快速数据重建的不切实际的高存储要求的技术问题关联。作为示例,zig-zag码是现代码,其支持在单个故障的情况下读取显著减少的数据,同时还能够修复多于一个磁盘故障。不幸的是,zig-zag码中的基本编码单元(以及为所有节点提供最佳恢复的所有其他码)指数级地变大,因此对于具有多于10个磁盘驱动器的系统来说,它们并不实用。
因此,根据上述讨论,需要克服与在存储系统发生故障时重建数据的现有技术关联的上述缺点。
发明内容
本公开内容寻求提供具有内置冗余的数据存储系统、恢复该数据存储系统中的数据的计算机实现的方法以及用于将数据存储在数据存储系统中的计算机实现的方法。本公开内容寻求提供解决现代存储系统中数据重建时间长和快速数据重建不切实际的高存储要求的现有问题的方案。本公开内容的目的是提供一种至少部分地克服现有技术中遇到的问题的方案,并提供能够以中等和实际可行的存储要求快速重建数据的数据存储系统和方法。
本公开内容的目的是通过所附独立权利要求中提供的方案实现的。本发明的有利实现方式在从属权利要求中进一步定义。
一方面,本公开内容提供了具有内置冗余的数据存储系统。数据存储系统包括n个节点,n个节点中的k个节点是数据节点,以及n个节点中的r个节点是奇偶校验节点,k、n和r为整数,并且n=k+r。数据存储系统是基于日志的存储系统,其中,数据作为日志条目存储,每个日志条目分布在所有节点上,分包数(packetization)为8或更小。第一集合包括k个数据节点中的被指定为快速恢复节点的f个数据节点,第二集合包括其余数据节点。奇偶校验节点中的第一奇偶校验节点使用奇偶校验,使得在任何单个数据节点发生故障时能够恢复数据子包。一个或更多个附加奇偶校验节点使用奇偶校验,使得对于数据节点中的第一集合,第一奇偶校验和其他奇偶校验可以一起用于恢复它们的数据,而无需从所有数据节点读取所有数据。数据存储系统被设置成将属于需要快速恢复的逻辑单元的数据存储在第一集合中的数据节点中。
数据存储系统有益地使用不均衡再生码来提供数据存储系统的冗余方案。对于数据存储系统的k个数据节点,与第二集合中的数据节点相比,第一集合中的数据节点在发生故障的情况下数据恢复更快。第一集合中的数据节点的这种快速数据恢复可以归因于第一奇偶校验节点和一个或更多个附加奇偶校验节点使用的奇偶校验,因为所述奇偶校验一起有助于恢复所述数据节点的数据,而不需要从所有其余节点读取所有数据。数据存储系统可以有效地用于在第一集合的数据节点中存储关键和/或重要数据,因为针对第一集合的数据节点提供了快速数据重建能力。换句话说,数据存储系统能够为优先逻辑单元提供更快的数据恢复。此外,数据存储系统可以在标称存储要求下实际实现,以提供相当大的冗余。
在实现方式中,第一奇偶校验节点使用XOR奇偶校验。
第一奇偶校验节点用于在计算上高效地重建任何故障数据节点。XOR奇偶校验在计算上很容易实现。
在实现方式中,奇偶校验节点2、……、r使用由式(1)给出的奇偶校验
Figure BDA0004149281860000025
其中,索引i+m-1将对r取模,范围在1、……、r内,并且λi,j、μi是要选择以满足极大距离可分准则的有限域系数,dx,y表示数据存储系统的第x数据节点中的第y子包,以及pm,i表示数据存储系统的第m奇偶校验节点中的第i子包。
所有奇偶校验节点的奇偶校验满足极大距离可分(maximum distanceseparable,MDS)准则,从而为奇偶校验节点提供最佳的容错。奇偶校验节点2、……、r的奇偶校验结合第一奇偶校验节点使用的奇偶校验促进在第一集合的数据节点发生故障的情况下快速恢复数据。
在实现方式中,奇偶校验节点的数量为2,分包数为2,以及第一奇偶校验节点和第二奇偶校验节点由下式定义
Figure BDA0004149281860000021
其中,c=X是乘法群
Figure BDA0004149281860000022
的生成元,以及/>
Figure BDA0004149281860000023
是有限域,/>
Figure BDA0004149281860000024
是有限域系数,以及dx,y表示数据存储系统的第x节点中的第y子包。
小的分包数(等于2)有助于减少数据存储系统中数据恢复期间的输入/输出开销。此外,针对第一奇偶校验节点和第二奇偶校验节点定义的前述奇偶校验提供了高效且可靠的数据重建(即,数据重建)方案,该方案可用于在属于第一集合的数据节点发生故障的情况下快速恢复数据。
在实现方式中,f=r。
当第一集合中的数据节点的数量等于奇偶校验节点的数量时,提供了一种在快速数据恢复的存储要求与提供冗余的存储要求之间提供合理、可靠的权衡的数据存储系统的实现方式。
在实现方式中,n=10,k=8,以及r=2。
具有10个节点(其中,8个节点是数据节点,以及2个节点是奇偶校验节点)的数据存储系统是实际可实现的,因为它不需要过多的存储量来支持数据的快速恢复。这样的数据存储系统具有高的数据存储效率,是成本高效、空间高效和能量高效的。
在实现方式中,r是2x,x为1与3之间的整数。
这样数量的奇偶校验节点在数据存储系统中提供了合理和实际可实现的冗余。
在另一方面,本公开内容提供了一种恢复数据存储系统中的数据的计算机实现的方法,其中,在第一集合f中的数据节点之一发生故障的情况下,可以通过读取数据总量的
Figure BDA0004149281860000031
来恢复数据。
通过上述恢复数据存储系统中的数据的方法,为了从第一集合中的数据节点之一的故障中恢复,只需要读取数据总量的一部分。因此,针对第一集合中的数据节点实现了极快的数据恢复。
在一种实现方式中,恢复的步骤包括:对于故障节点1≤j≤f,
确定1≤i≤r的唯一值,使得
Figure BDA0004149281860000032
在确定步骤之后,读取k个符号p1,i,d1,i,…,dj-1,i,dj+1,i,…,dk,i,以恢复dj,i:dj,i=p1,i+d1,i+…+dj-1,i+dj+1,i+…+dk,i
在读取k个符号的步骤之后,对于每个2≤m≤r,读取[f/r]个符号
Figure BDA0004149281860000034
以恢复dj,i+m-1
Figure BDA0004149281860000033
通过上述恢复步骤,数据存储系统高效地恢复属于第一集合中的数据节点的数据。
在实现方式中,恢复的步骤包括:
对于故障节点
Figure BDA0004149281860000035
读取p1,1,d1,1,…,dj-1,1,dj+1,1,…,dk,1,以恢复dj,1,并且然后附加地读取/>
Figure BDA0004149281860000037
以恢复dj,2
对于故障节点
Figure BDA0004149281860000036
读取p1,2,d1,2,…,dj-1,2,dj+1,2,…,dk,2,以恢复dj,2,并且然后附加地读取/>
Figure BDA0004149281860000038
以恢复dj,1
通过上述恢复步骤,数据存储系统高效地恢复属于第一集合中的数据节点的数据。
在另一方面,本公开内容提供了一种用于以日志条目形式将数据存储在数据存储系统中的计算机实现的方法,其包括以下步骤:根据日志条目内的优先信息的位置标识数据存储系统中的一个或更多个逻辑单元,以及将与每个这样的逻辑单元关联的优先信息写入被指定为快速恢复节点的数据节点。
通过上述用于存储数据的步骤,在属于被指定为快速恢复节点的数据节点的特定逻辑单元处准确地实现了优先信息的存储。
在实现方式中,计算机实现的方法包括以下步骤:将与未标识为包括优先级信息的每个逻辑单元关联的信息写入属于第二集合的数据节点。
通过上述用于存储数据的步骤,在对应于属于第二集合的数据节点的特定逻辑单元处,准确地实现存储与未标识为包括优先信息的每个逻辑单元关联的信息。
在实现方式中,本公开内容提供了用于控制对数据存储系统的读取和/或写入的计算机程序产品,其包括计算机可读代码部分,该计算机可读代码部分当在数据存储系统的控制单元中运行时用于使控制单元执行上述方法。
计算机可读代码部分以在任何数据节点故障时可以有效地恢复数据的方式从数据存储系统读取数据。与在第二集合中的数据节点发生故障的情况下恢复数据相比,计算机可读代码部分能够在第一集合中的数据节点发生故障的情况下更快地恢复数据。此外,计算机可读代码部分便于以信息被选择性地写入特定逻辑单元(具体取决于信息将被写入的逻辑单元)的方式将数据存储在数据存储系统中。
需要说明的是,本申请中描述的所有设备、元件、电路、单元和部分可以在软件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体适于或被配置成执行相应步骤和功能。虽然在以下具体实施方式的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。可以理解的是,本公开内容的特征易于以各种组合进行组合,而不脱离由所附权利要求书所定义的本公开内容的范围。
本公开内容的附加方面、优点、特征和目的从附图和以下结合所附权利要求书说明的说明性实现方式的详细描述中变得显而易见。
附图说明
当结合附图阅读时,可以更好地理解以上发明内容以及说明性实施方式的以下详细描述。为了说明本公开内容,本公开内容的示例性结构在附图中示出。然而,本发明不限于本文公开的具体方法和工具。此外,本领域技术人员应理解,附图不是按比例绘制的。在可能的情况下,相同的元件用相同的附图标记来表示。
现在参考下图仅通过示例的方式来描述本公开内容的实施方式,在附图中:
图1是根据本公开内容的实施方式的数据存储系统的框图;
图2是根据本公开内容的实施方式的包括10个节点的数据存储系统的示意图;
图3是根据本公开内容的实施方式的日志条目的结构的图示;
图4示出了根据本公开内容的实施方式的用于以日志条目的形式将数据存储在数据存储系统中的计算机实现的方法的流程图;以及
图5示出了根据本公开内容的实施方式的恢复数据存储系统中的数据的计算机实现的方法的流程图。
在附图中,带下划线的附图标记用于表示带下划线的附图标记所在的项目或与带下划线的附图标记相邻的项目。不带下划线的附图标记与由将不带下划线的附图标记与项目关联的线标识的项目有关。当数字不带下划线并具有关联的箭头时,不带下划线的数字用于标识箭头指向的一般项目。
具体实施方式
以下详细描述说明了本公开内容的实施方式以及可以实现这些实施方式的方式。虽然已经公开了实施本公开内容的一些模式,但本领域技术人员应认识到,也可以存在用于实施或实践本公开内容的其他实施方式。
图1是根据本公开内容的实施方式的数据存储系统的框图。参照图1,示出了具有内置冗余的数据存储系统100的框图。数据存储系统100包括n个节点102,n个节点102中的k个节点是数据节点(示出为k个数据节点104),n个节点102中的r个节点是奇偶校验节点(示出为r个奇偶校验节点106)。这里,k、n和r是整数,并且n=k+r。数据存储系统100是基于日志的存储系统,其中,数据被存储为日志条目,每个日志条目分布在所有节点上(即n个节点102),分包数为8或更小。在数据存储系统100中,第一集合108包括k个数据节点104中的被指定为快速恢复节点的f个数据节点,第二集合110包括k个数据节点104中的其余数据节点。奇偶校验节点(即r个奇偶校验节点106)中的第一奇偶校验节点使用奇偶校验,使得将在任何单个数据节点发生故障时能够恢复数据子包,以及(r个奇偶校验节点106中的)一个或更多个附加奇偶校验节点使用奇偶校验,使得针对数据节点的第一集合108,第一奇偶校验和其他奇偶校验可以一起用于恢复它们的数据,而无需从所有数据节点(即k个数据节点104)读取所有数据。数据存储系统100被设置成将属于需要快速恢复的逻辑单元的数据存储在第一集合108中的数据节点中。
在本公开内容中,术语“数据存储系统”是指用于存储数据的存储系统。数据存储系统100具有内置冗余。在n个节点102中的一定数量(例如,小于或等于r)个节点发生故障的情况下,数据存储系统100丢失数据,但是能够通过使用其内置冗余可靠地重建丢失的数据来有效地从故障中恢复。此外,这种内置冗余确保了在发生故障的情况下,数据存储系统100继续有效地从其余工作节点传送数据。在实施方式中,数据存储系统100内的冗余集中在数据存储系统100的r个奇偶校验节点106上。数据存储系统100使用不均衡再生码(该码是专门的擦除码)以提供数据存储系统100的冗余方案。不均衡再生码为(n,k)擦除码,其中,n是数据存储系统100中的节点总数,以及k是数据存储系统100中的数据节点数。不均衡再生码将恢复故障节点的数据所需读取的数据量降至最低。因此,数据存储系统100所需的修复带宽也减少了。
在实施方式中,数据存储系统100能够容忍多达n-k个节点故障。换句话说,数据存储系统100能够容忍多达r个节点故障。
在实施方式中,数据存储系统100被实现为分布式存储系统。这样的分布式存储系统具有分布式基础设施,其中,数据存储在多个存储设备中。这些多个存储设备可选地分布在一个或更多个数据中心。
在本公开内容中,术语“节点”是指存储设备。数据存储系统100的n个节点102是数据存储系统100的n个存储设备(即n个存储单元)。在实施方式中,数据存储系统100的n个节点102被实现为块存储设备。块存储设备是支持读取数据以及可选地将数据写入固定大小块中的数据存储设备。固定大小块可以理解为块存储设备的“卷”。可选地,给定块存储设备被划分为一个或更多个块。
数据存储系统100的任何给定节点或者是数据节点或者是奇偶校验节点。在本文中,术语“数据节点”是指用于存储数据的存储设备,而术语“奇偶校验节点”是指用于存储奇偶校验数据(即奇偶校验信息)的存储设备,其用于提供存储在数据节点中的数据的冗余。在实施方式中,k个数据节点104中的每一个存储数据子包,而r个奇偶校验节点106中的每一个存储奇偶校验子包。给定子包可以或者是数据子包或者是奇偶校验子包,具体取决于它存储在哪个节点。
n个节点102的数量n是数据存储系统100中使用的不均衡再生码的码长,而k个数据节点104的数量k是不均衡再生码的码维。
在实施方式中,数据存储系统100的给定节点被实现为以下中的至少一个:硬盘驱动器(hard-disk drive,HDD)、固态驱动器(solid-state drive,SDD)、具有一个或更多个HDD和/或SDD的物理服务器、可以访问一个或更多个HDD和/或SSD的虚拟机。可以理解的是,上述示例不是详尽无遗的,并且也可以使用其他类型的存储设备来实现数据存储系统100的给定节点。
在示例中,数据存储系统100可以包括20个节点,20个节点中的16个是数据节点,并且20个节点中的4个是奇偶校验节点。在另一示例中,数据存储系统100可以包括12个节点,12个节点中的9个是数据节点,并且13个节点中的3个是奇偶校验节点。可以理解的是,上述示例不是详尽无遗的,并且数据存储系统100可以通过使用数据节点和奇偶校验节点的其他配置来实现。
数据存储系统100是基于日志的存储系统。基于日志的存储系统(即日志结构存储系统或日志结构文件系统)是日志条目的仅可添加序列的日志。在基于日志的存储系统中,新数据通过日志条目的方式写入日志末尾。每个日志条目包括待存储在数据存储系统100中的数据。基于日志的存储系统与描述数据在日志中存在的位置的元数据结构关联。元数据结构也具有日志结构,并写入基于日志的存储系统的日志或另一元数据日志。在实施方式中,当数据存储系统100的n个节点102被实现为块存储设备时,日志包括对块存储设备的一个或更多个块(即卷)的写入,并且元数据结构包括在块中数据被写入的的地址。可以理解的是,日志条目通常作为一个大的写入被高速缓存和写入,即使在spindle上也能很好地工作。
在实施方式中,数据存储系统100中的每个日志条目具有对应于基于日志的存储系统的结构(即格式)。日志条目的结构将结合图3详细描述。
基于日志的存储系统中的每个日志条目分布在n个节点102上,分包数为8或更小。可以理解的是,分包数越小,日志条目的大小越小。在本文中,术语“分包数”是指存储在数据存储系统100中的数据单元所划分成的子包的数量。每个数据单元可选地包括一个或更多个子包。存储在k个数据节点104中的数据和存储在r个奇偶校验节点106中的奇偶校验数据都要进行分包。在实施方式中,当数据存储系统100的n个节点102实现为块存储设备时,数据单元为块。
在示例中,分包数可以等于2。换句话说,每个数据单元和奇偶校验数据分别被划分为2个数据子包和2个奇偶校验子包。在另一示例中,分包数可以等于4。换句话说,每个数据单元和奇偶校验数据分别被划分为4个数据子包和4个奇偶校验子包。
可以理解的是,分包数的量级指示执行与数据存储系统100有关的所有操作的最小维度。
在数据存储系统100中,存在包括k个数据节点104中的被指定为快速恢复节点的f个数据节点的第一集合108。换句话说,第一集合108包括快速恢复节点。术语“快速恢复节点”是指与k个数据节点104中的其余节点相比,从故障中恢复(即数据恢复或数据重建)地更快的k个数据节点104中的那些节点。第二集合110包括k个数据节点104中的没有被指定为快速恢复节点的其余k-f个数据节点。第二集合110中的数据节点可以被理解为“常规恢复节点”。属于第一集合108的快速恢复节点比属于第二集合110的其余节点具有更好的数据重建方案,因为用于重建存储在快速恢复节点中的数据的访问和传输的数据量小于用于重建存储在常规恢复节点中的数据量。
在实施方式中,第一集合108中的f个数据节点由数据存储系统100的用户选择。在另一实施方式中,第一集合108中的f个数据节点在数据存储系统100中预先选择。
在实施方式中,属于第一集合108的数据节点的数量f在1至k的范围内。在数学上,1≤f≤k。最少可以指定1个数据节点作为快速恢复节点,而最多可以指定k个数据节点作为快速恢复节点。数字f可以由用户选择,也可以在数据存储系统100中预先选择。
奇偶校验节点(即,r个奇偶校验节点106)中的第一奇偶校验节点使用奇偶校验,该奇偶校验能够在(k个数据节点104中的)任何单个数据节点发生故障时高效地恢复数据子包。奇偶校验节点中的第一奇偶校验节点使用的奇偶校验能够在最短的时间内实现数据子包的最佳恢复。“奇偶校验节点中的第一奇偶校验节点”被称为“第一奇偶校验节点”,第一奇偶校验节点使用的奇偶校验被称为“第一奇偶校验”。
在实施方式中,第一奇偶校验节点使用XOR奇偶校验。异或(exclusive OR,XOR)奇偶校验能够在计算上高效地重建(k个数据节点104中的)任何故障数据节点。
在实施方式中,第一奇偶校验节点使用的XOR奇偶校验由等式p1,i=d1,i+d2,i+…+dk,i给出,其中,1≤i≤q,q表示单个数据节点中的子包的总数,并且其中,p1,i表示数据存储系统100的第一奇偶校验节点中的第i子包。作为示例,当q=2时,第一奇偶校验节点中的第一奇偶校验子包的奇偶校验数据被给出为p1,1=d1,1+d2,1+…+dk,1,第一奇偶校验节点中的第二奇偶校验子包的奇偶校验数据被给出为p1,2=d1,2+d2,2+…+dk,2。作为另一示例,数据存储系统100的n个节点102中的每一个可以被划分为具有等于2的分包数的3个块。在这种情况下,q等于6,并且第一奇偶校验节点中的6个奇偶校验子包的奇偶校验数据可以如以上所描述进行计算。
在实施方式中,奇偶校验节点2,…,r使用由式(1)给出的奇偶校验
Figure BDA0004149281860000071
/>
其中,索引i+m-1将对r取模,范围在1、……、r内,并且λi,j、μi是要选择以满足极大距离可分准则的有限域系数,dx,y表示数据存储系统100的第x数据节点中的第y子包,以及pm,i表示数据存储系统100的第m奇偶校验节点中的第i子包。
在这方面,当有限域系数被选择成满足极大距离可分(maximum distanceseparable,MDS)准则时,可以高效地从n个节点102中的任何k个节点提取数据。可以将所有奇偶校验节点106作为一个整体对其应用MDS准则。由式(1)给出的奇偶校验对应于不均衡再生码(由数据存储系统100使用),与所支持的故障数量相比,该不均衡再生码在空间上是高效的。此外,在这种情况下,不均衡再生码可以理解为MDS码,它能够快速恢复数据,并且在实现方面也是实用的。
可以理解的是,由第一奇偶校验节点使用的第一奇偶校验和由式(1)针对奇偶校验节点2、……、r给出的奇偶校验提供了使第一集合108中的数据节点能够快速恢复的不均衡再生码。这些奇偶校验被定义为使得在数据节点的第一集合108中的任何数据节点发生故障的情况下,可以执行准确和高效的数据恢复,而无需从所有k个数据节点104读取所有数据。对于第二集合110中的数据节点,不均衡再生码需要从所有k个数据节点104完全读取所有数据以实现恢复。因此,在数据节点发生故障的情况下,不均衡再生码在数据的恢复时间方面是不均衡(即f个快速恢复节点具有比k-f个常规恢复节点短的恢复时间)。
可以理解的是,定义第一奇偶校验和其他奇偶校验(对于一个或更多个附加奇偶校验节点)构成编码操作,其中,r个奇偶校验节点106的奇偶校验数据是根据k个数据节点104的数据计算的。
在本公开内容中,术语“逻辑单元”是指数据存储系统100中的存储区域,其中,每个逻辑单元包括一个或更多个块。在实施方式中,数据存储系统100包括多个逻辑单元,其中,多个逻辑单元包括需要快速恢复的逻辑单元和不需要快速恢复的逻辑单元。数据存储系统100的多个逻辑单元可以理解为划分为两组,其中,不同组的逻辑单元具有不同的(即不均衡的)恢复时间。“需要快速恢复的逻辑单元”可以理解为“优先逻辑单元”,而“不需要快速恢复的逻辑单元”可以理解为“非优先逻辑单元”。
数据存储系统100被设置成将属于优先逻辑单元的数据存储在第一集合108中的数据节点中。这使得在存储数据的数据节点发生故障的情况下能够快速恢复数据。这样,在数据存储系统100内以优先逻辑单元快速重建的方式定义优先逻辑单元。可以理解的是,重要的、敏感的和/或关键的数据可以属于(即存储在)优先逻辑单元,因为长时间丢失这种数据是不希望的。此外,属于非优先逻辑单元的数据存储在第二集合110中的数据节点或奇偶校验节点中。“属于优先逻辑单元的数据”可以理解为“优先数据”或“优先信息”。类似地,“属于非优先逻辑单元的数据”可以理解为“非优先数据”或“非优先信息”。
可以理解的是,数据存储系统100使用的不均衡再生码能够在数据存储系统100中创建优先逻辑单元。在示例中,数据存储系统100的k个数据节点104中的25%可以被定义(即,创建)为优先逻辑单元,而k个数据节点104中的75%可以被定义为非优先逻辑单元。
在实施方式中,给定逻辑单元由对应的标识符标识。可选地,标识符是逻辑单元号(logical unit number,LUN)。逻辑单元号是用于标记和指定数据存储系统100的节点的子系统的标识符。
图2是根据本公开内容的实施方式的包括10个节点的示例性数据存储系统的示意图。参照图2,示出了包括10个节点(示出为节点202、204、206、208、210、212、214、216、218和220)的数据存储系统200。需要说明的是,10个节点中的8个节点是数据节点(示出为节点202、204、206、208、210、212、214和216),以及10个节点中的2个节点是奇偶校验节点(示出为节点218和220)。在本文中,n、k和r是整数,其中,n等于10,k等于8,以及r等于2,并且其中,n=k+r。此外,第一集合222包括8个数据节点202至216中的2个节点,而第二集合224包括8个数据节点202至216中的其余6个数据节点。特别地,第一集合222包括数据节点202和204,而第二集合224包括数据节点206、208、210、212、214和216。第一集合222中的数据节点202和204被指定为快速恢复节点。第一集合222对应于数据存储系统200中的优先逻辑单元,而第二集合224对应于数据存储系统200中的非优先逻辑单元。
在示例性场景中,当快速恢复节点202和204中的任一个或两个发生故障时,存储在故障快速恢复节点中的数据可以通过仅读取未发生故障的其余节点中的约56%的数据(相对于里德-所罗门(Reed-Solomon,RS)码)来恢复。然而,在另一示例性场景中,当常规恢复节点206、208、210、212、214和216中的任何其他节点发生故障时,存储在故障常规恢复节点中的数据只能通过读取未发生故障的其余节点中的100%的数据(相对于RS码)来恢复。
在实施方式中,奇偶校验节点218是第一奇偶校验节点,以及奇偶校验节点220是第二奇偶校验节点。
在实施方式中(例如,在图2中示出),奇偶校验节点218和220的数量为2,分包数为2,以及第一奇偶校验节点218和第二奇偶校验节点220由下式定义:
Figure BDA0004149281860000091
其中c=X是乘法群
Figure BDA0004149281860000092
的生成元,/>
Figure BDA0004149281860000093
是有限域,/>
Figure BDA0004149281860000094
是有限域系数,以及dx,y表示数据存储系统200的第x节点中的第y子包。
在这方面,假定n≤257并且f≤62。此外,dx,y的系数以所述系数满足MDS准则的方式生成。有限域在上面被称为伽罗华域(Galois field,GF)。此外,这里x的范围是1至k。换句话说,dx,y表示数据存储系统200的第x数据节点中的第y子包。在这种情况下,例如,β可以等于c178。替选地,β可以具有任何其他合适的值,但对于β的其他值,f的最大允许值(使得仍然满足MDS准则)将更小。取β=1是计算效率最高的,并且在这种情况下,具有约束f≤21。
在示例中,第一奇偶校验节点218和第二奇偶校验节点220可以由下式定义:
p1,1=d1,1+d2,1+d3,1+d4,1+d5,1+d6,1+d7,1+d8,1
p1,2=d1,2+d2,2+d3,2+d4,2+d5,2+d6,2+d7,2+d8,2
p2,1=d1,1+2·d2,1+4·d3,1+8·d4,1+16·d5,1+32·d6,1+64·d7,1+128·d8,1+171·d1,2
p2,2=d1,2+2·d2,2+4·d3,2+8·d4,2+16·d5,2+32·d6,2+64·d7,2+128·d8,2+171·d2,1
其中,p1,1和p1,2对应于第一奇偶校验节点218,以及p2,1和p2,2对应于第二奇偶校验节点220。
在实施方式中,r是2x,x是1与3之间的整数。例如,x可以等于1,并且因此,r可以等于2。这样的示例在图2中示出。作为另一示例,x可以等于2,并且因此,r可以等于4。作为又一示例,x可以等于3,并且因此,r可以等于8。这样的数量r个奇偶校验节点在数据存储系统100、200中提供了合理的和实际可实现的冗余量。
可选地,x的值是基于(数据节点的)数量k确定的。需要说明的是,x的值直接取决于数量k,因为存储更多数据节点的奇偶校验数据需要更多数量的奇偶校验节点。可以理解的是,奇偶校验节点的数量越少,数据存储系统100、200中用于存储奇偶校验数据的存储需求越低。
在实施方式中(例如,在图2中示出),f=r。换句话说,指定为快速恢复节点的数据节点的数量f等于奇偶校验节点的数量r。在数据存储系统200中,f等于2(因为第一集合222中的数据节点202和204被指定为快速恢复节点),以及r也等于2(因为节点218和220是奇偶校验节点)。当第一集合222中的数据节点202和204的数量等于奇偶校验节点218和220的数量时,提供了数据存储系统200的实现方式,该实现方式在快速数据恢复的存储要求与提供冗余的存储要求之间提供合理、可靠的权衡。
在另一实施方式中,f不等于r。可选地,f小于r。可以理解的是,当f小于或等于r时,快速恢复节点的恢复速度尽可能快(即它满足理论边界)。替选地,可选地,f大于r。在这种情况下,快速恢复节点的恢复速度随着数量f的增加而降低。作为示例,f可以等于1,而r可以等于2。作为另一示例,f可以等于4,而r可以等于3。
在实施方式中(例如,在图2中示出)n=10,k=8,以及r=2。换句话说,数据存储系统100、200包括总共10个节点,其中,8个节点(即节点202、204、206、208、210、212、214和216)是数据节点,以及2个节点(即节点218和220)是奇偶校验节点。这样的数据存储系统100、200是实际可实现的(因为它不需要过高的存储量来支持数据的快速恢复),具有高的数据存储效率,是成本高效、空间高效和能量高效的。
可以理解的是,n、k、r和f的值是示例性的,并且这些变量的其他值可以根据需要使用。
图3是根据本公开内容的实施方式的日志条目的结构的图示。参照图3,示出了具有三个部分300A、300B和300C的日志条目300。部分300A包括优先信息,部分300B包括非优先信息,以及部分300C包括奇偶校验信息。
在实施方式中,日志条目300的结构是固定的。换句话说,日志条目300中的三个部分300A、300B和300C的布置(即顺序)是固定的。属于需要快速恢复的逻辑单元的优先信息布置在部分300A中,因为日志条目300的该区域对应于快速恢复节点。属于不需要快速恢复的逻辑单元的非优先信息布置在部分300B中,因为日志条目300的该区域对应于常规恢复节点。奇偶校验信息布置在部分300C中,因为日志条目300的该区域对应于奇偶校验节点。这样,优先信息、非优先信息和奇偶校验信息按排序位于(日志条目300内)对应于其逻辑单元的必要位置。可以理解的是,日志条目300的固定结构使得能够实现优先信息、非优先信息和奇偶校验信息相对于它们对应的逻辑单元的适当平衡。在没有这种平衡的情况下,例如,优先信息可能被不准确地写入对应于非优先信息的逻辑单元,并且反之亦然。在将信息写入数据存储系统100、200时的这种不准确性将不希望地破坏数据存储系统100、200中快速数据恢复的目的。因此,日志条目300的固定结构以系统的方式排序待写入数据存储系统100、200的信息,以促进准确和更快地写入数据存储系统100、200,以及在需要时促进数据存储系统100、200中的优先信息的最佳快速恢复。
可以理解的是,当数据存储系统100、200中的分包数较小时,日志条目300的大小也较小。作为示例,当数据存储系统200中使用等于2的分包数时,日志条目300中将有总数20个子包。这20个子包包括待写入8个数据节点202至216的16个数据子包,以及待写入2个奇偶校验节点218和220的4个奇偶校验子包。如果每个子包的大小为64千字节,则日志条目300的大小为1280千字节(因为20*64千字节等于1280千字节),这是非常小的。此外,写入(第一集合222中的)被指定为快速恢复节点的2个特定数据节点202和204的4个数据子包可以比其他数据节点206至216上的其他数据子包更快地恢复。
需要说明的是,数据存储系统100、200所使用的不均衡再生码使得日志条目300的大小比对应于现代码例如zig-zag码的日志条目小得多。例如,对应于zig-zag码的日志条目包括1000多个子包,这意味着这些日志条目的大小至少是日志条目300的大小的50倍大。如果需要更多的数据节点和更多的奇偶校验节点,则zig-zag码所需的子包的数量会呈指数级增长,因此在实际实现方面很快就会变得不可行。
在实施方式中,给定包(即数据包和/或奇偶校验包)的大小至少等于存储在数据存储系统100、200中的数据单元的大小。给定包的大小是通过将给定子包(即给定数据子包和/或给定奇偶校验子包)的大小与分包数的值相乘来给出的。当数据单元是块时,给定包的大小至少等于块的大小。然而,给定包的大小通常大于块的大小,以使得即使从spindle存储中也能高效地读取数据。
图4示出了根据本公开内容的实施方式的用于以日志条目的形式将数据存储在数据存储系统中的计算机实现的方法的流程图。参照图4,示出了用于以日志条目(例如图3的日志条目300)的形式将数据存储在数据存储系统(例如数据存储系统100、200)中的计算机实现的方法400的流程图。该方法400包括步骤402、404和406。
在步骤402处,根据日志条目300内的优先信息的位置在数据存储系统100、200中标识一个或更多个逻辑单元。在实施方式中,优先信息所属的一个或更多个逻辑单元被标识为对应于日志条目300内的优先信息的位置。
在步骤404处,与每个这样的逻辑单元(即在步骤402中标识的每个逻辑单元)关联的优先信息被写入被指定为快速恢复节点的数据节点。换句话说,优先信息(以数据子包的形式)存储在被指定为快速恢复节点的数据节点中。这样的一个或更多个逻辑单元(即一个或多个优先逻辑单元)被定义在被指定为快速恢复节点的数据节点中。
在步骤406处,与未标识为包括优先信息的每个逻辑单元关联的信息被写入属于第二集合110、224的数据节点。未标识为包括优先信息的每个逻辑单元对应于在属于第二集合110、224的数据节点(例如,数据节点206至216中的任何一个)上定义的非优先逻辑单元。在实施方式中,未标识为包括优先信息的每个逻辑单元是基于日志条目300内的非优先信息的位置来标识的。此外,未标识为包括优先信息的每个逻辑单元可以被理解为属于非优先逻辑单元。
步骤402至406仅是说明性的,并且还可以在不脱离本文权利要求的范围的情况下提供添加一个或更多个步骤、删除一个或更多个步骤、或以不同的顺序提供一个或更多个步骤的其他替选方案。
在实施方式中,方法400还包括以下步骤:将奇偶校验信息写入在数据存储系统100、200的奇偶校验节点(即奇偶校验节点106、218至220)上定义的一个或更多个逻辑单元。在奇偶校验节点上定义的一个或更多个逻辑单元是基于日志条目300内的奇偶校验信息的位置来标识的。此外,在奇偶校验节点上定义的一个或更多个逻辑单元可以被理解为属于非优先逻辑单元。
根据方法400的实施方式,数据存储系统100、200使用数据条带化。换句话说,待写入数据存储系统100、200的数据(或信息)被分割成多个包,其中,连续的包被写入数据存储系统100、200的不同节点。数据条带化有益地支持从数据存储系统100、200的快速读取,因为分布在数据存储系统100、200的不同节点上的多个包可以被同时读取。数据条带化增加了数据存储系统100、200的数据吞吐量。
在实施方式中,给定数据条带包括h个包,其中,h是n的倍数。在这种情况下,数据通过给定数据条带一次性写入数据存储系统100、200的所有n个节点102、202至220。给定条带包括数据(即优先信息、非优先信息和奇偶校验信息)和不均衡再生码。这支持在一个或更多个节点发生故障的情况下恢复,具体取决于所述码。可以理解的是,通常,给定数据条带的长度与一次性写入n个节点102、202至220的数据量之间存在对齐。
在实施方式中,日志条目300对应于单个数据条带。在另一实施方式中,日志条目300对应于多个数据条带。在示例中,给定数据存储系统(例如数据存储系统100)可以包括三个节点,其中,三个节点中的两个节点是数据节点,并且三个节点中的一个节点是奇偶校验节点。三个节点中的每个节点可以被实现为具有单个块的块存储设备。三个节点中的每个节点可以具有64千字节的存储空间。在这种情况下,用于将数据写入给定数据存储系统的数据条带可以具有192千字节的总大小,其中,128千字节对应于两个包(两个数据节点的单个块中各存储一个包),以及64千字节对应于一个包(将存储在那一个奇偶校验节点的单个块中)。对应于该数据条带的日志条目也将具有192千字节的大小。
图5示出了根据本公开内容的实施方式的恢复数据存储系统中的数据的计算机实现的方法的流程图。参照图5,示出了恢复数据存储系统(例如数据存储系统100、200)中的数据的计算机实现的方法500的流程图。在步骤502处,确定属于数据节点(即数据节点202、204)的第一集合(即第一集合108、222)的数据节点中是否发生了故障。当确定在属于数据节点的第一集合108、222的数据节点中发生故障时,执行步骤504。替选地,执行步骤506。在步骤504处,读取来自所有数据节点104、202至216的所有数据的一部分,以用于恢复故障数据节点的数据。在步骤506处,读取来自所有数据节点104、202至216的所有数据,以用于恢复故障数据节点的数据。
步骤502至506仅是说明性的,并且还可以在不脱离本文权利要求的范围的情况下提供添加一个或更多个步骤、删除一个或更多个步骤、或以不同的顺序提供一个或更多个步骤的其他替选方案。
在方法500中,在第一集合f(即第一集合108、222)中的数据节点中的一个数据节点发生故障的情况下,可以通过读取数据总量的
Figure BDA0004149281860000121
来恢复数据。需要说明的是,当给定快速恢复节点发生故障时,r个奇偶校验节点的奇偶校验一起使用,以通过仅从所有其余功能数据节点读取一部分数据以时间高效的方式恢复给定快速恢复节点的丢失数据。仅从所有其余功能数据节点读取数据的一部分以恢复给定快速恢复节点的丢失数据的步骤对应于方法500的步骤504。作为示例,当n=10,k=8,r=2,以及f=2时,在被指定为快速恢复节点的节点之一发生故障的情况下,恢复需要读取总数据量的56.25%(因为(1/2)+{(2-1)/(2*8)}*(2/2)等于0.5625)。
可以理解的是,与第二集合110、224中的数据节点206至216相比,第一集合108、222中的数据节点202、204具有更快的数据恢复(或数据重建)速率。
在实施方式中,数据存储系统100、200是数据存储系统100、200,以及恢复步骤包括:对于故障节点1≤j≤f,
确定1≤i≤r的唯一值,使得
Figure BDA0004149281860000122
在确定步骤之后,读取k个符号p1,i,d1,i,…,dj-1,i,dj+1,i,…,dk,i,以恢复dj,i:dj,i=p1,i+d1,i+…+dj-1,i+dj+1,i+…+dk,i
在读取k个符号的步骤之后,对于每个2≤m≤r,读取[f/r]个符号
Figure BDA0004149281860000125
以恢复dj,i+m-1
Figure BDA0004149281860000123
在实施方式中,方法500的步骤504包括针对属于数据节点202、204的第一集合108、222的故障节点恢复数据的上述步骤。可选地,当针对属于数据节点202、204的第一集合108、222的故障节点恢复数据时,总共访问k+(r-1)[f/r]个符号以恢复故障节点1≤j≤f的数据。这里,
Figure BDA0004149281860000124
作为示例,在数据存储系统100中,n=10,k=8,r=2,以及f=2。然后,在被指定为快速恢复节点的数据节点中的任一个数据节点发生故障的情况下,总共访问9个符号以恢复丢失的数据。
在实施方式中,数据存储系统100、200是数据存储系统100、200,以及恢复步骤包括:
对于故障节点
Figure BDA0004149281860000131
读取p1,1,d1,1,…,dj-1,1,dj+1,1,…,dk,1,以恢复dj,1,并且然后附加地读取/>
Figure BDA0004149281860000137
以恢复dj,2
对于故障节点
Figure BDA0004149281860000132
读取p1,2,d1,2,…,dj-1,2,dj+1,2,…,dk,2,以恢复dj,2,并且然后附加地读取/>
Figure BDA0004149281860000138
以恢复dj,1
在这方面,在恢复故障节点
Figure BDA0004149281860000133
的数据时,总共访问/>
Figure BDA0004149281860000134
个符号。同样,在恢复故障节点/>
Figure BDA0004149281860000135
的数据时,总共访问/>
Figure BDA0004149281860000136
个符号。这些恢复步骤适用于数据存储系统100、200包括2个奇偶校验节点,并且分包数为2的情况。可以理解的是,与第二集合110、224中的其余k-f个数据节点206至216相比,第一集合108、222中的f个数据节点202、204在访问(和传输)的数据量方面具有更好的重建方案。
根据实施方式,提供了一种用于控制数据存储系统(即数据存储系统100、200)的读取和/或写入的计算机程序产品,其包括计算机可读代码部分,当在数据存储系统100、200的控制单元中运行时,该计算机可读代码部分被设置成使控制单元执行方法400和500。控制单元被实现为硬件、软件、固件或其组合。控制单元能够控制对数据存储系统100、200的n个节点102、202至220的读取和/或写入。在本文中,术语“计算机可读代码部分”是指前面描述的不均衡再生码。
在不脱离所附权利要求所限定的本公开内容的范围的情况下,可以对上文描述的本公开内容的实施方式进行修改。如“包括”、“包含”、“结合”、“具有”、“是”等用于描述和要求保护本公开内容的表述旨在以非排他性的方式解释,即支持也存在未明确描述的项目、组件或元件。对单数的引用也应解释为涉及复数。本文使用的词语“示例性”表示“作为示例、实例或说明”。任何被描述为“示例性的”实施方式不一定解释为比其他实施方式更优选或更有利,和/或排除其他实施方式的特征的结合。本文使用词语“可选地”表示“在一些实施方式中提供且在其他实施方式中没有提供”。应当理解,为了清楚起见而在单独实施方式的上下文中描述的本公开内容的某些特征还可以通过组合提供在单个实施方式中。相反地,为了简洁起见在单个实施方式的上下文中描述的本发明的各个特征也可以单独地或以任何合适的组合或作为本公开内容的任何其他描述的实施方式提供。

Claims (13)

1.一种具有内置冗余的数据存储系统(100,200),其包括n个节点(102、202至220),所述n个节点中的k个节点是数据节点(104,202至216),以及所述n个节点中的r个节点是奇偶校验节点(106,218至220),k、n和r为整数,并且n=k+r,其中,
–基于日志的存储系统,在基于日志的存储系统中,数据作为日志条目(300)存储,每个日志条目(300)分布在所有节点(102,202至220)上,分包数为8或更小,
–第一集合(108,222)包括k个数据节点(104,202至216)中的被指定为快速恢复节点(202,204)的f个数据节点,第二集合(110,224)包括其余数据节点(206至216),
–所述奇偶校验节点中的第一奇偶校验节点使用奇偶校验,使得在任何单个数据节点发生故障时能够恢复数据子包,
–一个或更多个附加奇偶校验节点使用奇偶校验,使得对于数据节点(202,204)的所述第一集合(108,222),所述第一奇偶校验和其他奇偶校验可以一起用于恢复它们的数据,而无需从所有数据节点(104,202至216)读取所有数据,
所述数据存储系统(100,200)被设置成将属于需要快速恢复的逻辑单元的数据存储在所述第一集合(108,222)中的数据节点中。
2.根据权利要求1所述的数据存储系统(100,200),其中,所述第一奇偶校验节点使用XOR奇偶校验。
3.根据前述权利要求中任一项所述的数据存储系统(100,200),其中,所述奇偶校验节点2、……、r使用由式(1)给出的奇偶校验
Figure FDA0004149281850000011
其中,索引i+m-1将对r取模,范围在1、……、r内,并且λi,j、μi是要选择以满足极大距离可分准则的有限域系数,dx,y表示数据存储系统(100,200)的第x数据节点中的第y子包,以及pm,i表示数据存储系统(100,200)的第m奇偶校验节点中的第i子包。
4.根据权利要求1所述的数据存储系统(100,200),其中,所述奇偶校验节点(218,220)的数量为2,所述分包数为2,以及所述第一奇偶校验节点(218)和所述第二奇偶校验节点(220)由下式定义
Figure FDA0004149281850000012
其中,c=X是乘法群
Figure FDA0004149281850000013
的生成元,以及/>
Figure FDA0004149281850000014
是有限域,/>
Figure FDA0004149281850000015
是有限域系数,以及dx,y表示数据存储系统(100,200)的第x节点中的第y子包。
5.根据前述权利要求中任一项所述的数据存储系统(100,200),其中,f=r。
6.根据前述权利要求中任一项所述的数据存储系统(100,200),其中,n=10,k=8,以及r=2。
7.根据前述权利要求中任一项所述的数据存储系统(100,200),其中,r为2x,x为1与3之间的整数。
8.一种恢复根据前述权利要求中任一项所述的数据存储系统(100,200)中的数据的计算机实现的方法(500),其中,在所述第一集合f(108,222)中的数据节点(202,204)之一发生故障的情况下,可以通过读取数据总量的
Figure FDA0004149281850000021
来恢复数据。
9.根据权利要求8所述的方法(500),其中,所述数据存储系统(100,200)是根据权利要求3所述的数据存储系统(100,200),并且所述恢复步骤包括:对于故障节点1≤j≤f,
–确定1≤i≤r的唯一值,使得
Figure FDA0004149281850000022
–在所述确定步骤之后,读取k个符号p1,i,d1,i,…,dj-1,i,dj+1,i,…,dk,i,以恢复dj,i:dj,i=p1,i+d1,i+…+dj-1,i+dj+1,i+…+dk,i
–在读取所述k个符号的步骤之后,对于每个2≤m≤r,读取[f/r]个符号
Figure FDA0004149281850000023
以恢复dj,i+m-1
Figure FDA0004149281850000024
10.根据权利要求8所述的方法,其中,所述数据存储系统(100,200)是根据权利要求4所述的数据存储系统(100,200),并且所述恢复步骤包括:
–对于故障节点
Figure FDA0004149281850000025
读取p1,1,d1,1,…,dj-1,1,dj+1,1,…,dk,1,以恢复dj,1,并且然后附加地读取/>
Figure FDA0004149281850000026
以恢复dj,2
–对于故障节点
Figure FDA0004149281850000027
读取p1,2,d1,2,…,dj-1,2,dj+1,2,…,dk,2,以恢复dj,2,并且然后附加地读取/>
Figure FDA0004149281850000028
以恢复dj,1
11.一种用于以日志条目(300)的形式将数据存储在根据权利要求1至7中任一项所述的数据存储系统(100,200)中的计算机实现的方法(400),其包括以下步骤:根据所述日志条目(300)内的优先信息的位置标识所述数据存储系统(100,200)中的一个或更多个逻辑单元,以及将与每个这样的逻辑单元关联的优先信息写入被指定为快速恢复节点的数据节点。
12.根据权利要求10或11所述的方法(400),包括以下步骤:将与未标识为包括优先信息的每个逻辑单元关联的信息写入属于所述第二集合(110,224)的数据节点。
13.一种用于控制对根据权利要求1至7中任一项所述的数据存储系统(100,200)的读取和/或写入的计算机程序产品,所述计算机程序产品包括计算机可读代码部分,所述计算机可读代码部分当在所述数据存储系统(100,200)的控制单元中运行时被设置成使所述控制单元执行根据权利要求8至12中任一项所述的方法。
CN202080105652.5A 2020-10-01 2020-10-01 具有内置冗余的数据存储系统以及恢复和存储数据的方法 Pending CN116249969A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/077438 WO2022069040A1 (en) 2020-10-01 2020-10-01 Data storage system with built-in redundancy and methods of recovering and storing data

Publications (1)

Publication Number Publication Date
CN116249969A true CN116249969A (zh) 2023-06-09

Family

ID=72752419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080105652.5A Pending CN116249969A (zh) 2020-10-01 2020-10-01 具有内置冗余的数据存储系统以及恢复和存储数据的方法

Country Status (2)

Country Link
CN (1) CN116249969A (zh)
WO (1) WO2022069040A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649867B2 (en) * 2017-12-15 2020-05-12 Western Digital Technologies, Inc. RAID array rebuild assist from external array copy

Also Published As

Publication number Publication date
WO2022069040A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
US9552258B2 (en) Method and system for storing data in raid memory devices
US9841908B1 (en) Declustered array of storage devices with chunk groups and support for multiple erasure schemes
JP4668970B2 (ja) フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
US8386889B1 (en) Drive replacement techniques for RAID systems
EP3230863B1 (en) A system and method for providing thin-provisioned block storage with multiple data protection classes
CN100375045C (zh) 容许存储系统中的多个存储设备故障的系统和方法
US9063910B1 (en) Data recovery after triple disk failure
US7529970B2 (en) System and method for improving the performance of operations requiring parity reads in a storage array system
EP1828899B1 (en) Method and system for syndrome generation and data recovery
US20060136778A1 (en) Process for generating and reconstructing variable number of parity for byte streams independent of host block size
US8392805B2 (en) Non-MDS erasure codes for storage systems
CN110096219B (zh) 从驱动器组生成的驱动器区段池的有效容量
JP2009514056A (ja) データ・ストレージ・アレイ
WO2011015134A1 (zh) 多磁盘容错系统及生成校验块、恢复数据块的方法
US8484506B2 (en) Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
US20120096329A1 (en) Method of, and apparatus for, detection and correction of silent data corruption
JP2018508073A (ja) データ除去、割り当て、及び再構築
EP3635554B1 (en) Layered error correction encoding for large scale distributed object storage system
CN109358980B (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
WO2005052855A2 (en) Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array
US20170017550A1 (en) Storage system
JP2015082150A (ja) ストレージシステム、及びストレージプログラム
JP4756704B2 (ja) データ・ストレージ・アレイ
US9229811B2 (en) Folded codes for correction of latent media errors
CN116249969A (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