CN111522675B - 故障域树内的数据分配 - Google Patents
故障域树内的数据分配 Download PDFInfo
- Publication number
- CN111522675B CN111522675B CN202010080603.2A CN202010080603A CN111522675B CN 111522675 B CN111522675 B CN 111522675B CN 202010080603 A CN202010080603 A CN 202010080603A CN 111522675 B CN111522675 B CN 111522675B
- Authority
- CN
- China
- Prior art keywords
- fdl
- node
- fault domain
- domain tree
- data
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 78
- 238000003860 storage Methods 0.000 claims description 36
- 238000013500 data storage Methods 0.000 claims description 26
- 238000011084 recovery Methods 0.000 claims description 14
- 239000007787 solid Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008439 repair process Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 102000030938 small GTPase Human genes 0.000 description 1
- 108060007624 small GTPase Proteins 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了故障域树内的数据分配。本申请中描述了用于故障域树内的数据分配的系统、装置和方法。数据对象可被均匀地分配到对称的故障域树中。非对称的故障域树可用于生成对称的故障域树。系统、装置和方法可分配数据对象以试图尽可能多地满足对称的故障域树的多个故障域层级的故障容差水平。
Description
本申请基于35U.S.C.§119(a)要求2019年2月5日提交的俄罗斯申请No.2019103210的优先权益,该俄罗斯申请的公开内容通过引用被整体结合在本申请中。
本申请的公开内容涉及故障域树内的数据分布,进一步涉及用于在故障域树内执行和实行此种数据分配的系统、装置和方法。
发明内容
一个说明性的系统可包括对称的故障域树,该对称的故障域树包括从顶FDL延伸至底FDL的多个故障域层级(FDL)。每个FDL可包括至少一个节点,且顶FDL可包括单个根节点。每个其它FDL可包括操作地耦合至该FDL上方的FDL中的节点的至少一个节点,并且底FDL的每个节点可以是用于存储数据的存储节点。说明性的系统可进一步包括控制器,该控制器包括一个或超过一个处理器,且被配置成接收包括多个数据块的数据对象,并在对称的故障域树上均匀地分配该数据对象的多个数据块。
一个说明性的装置可包括数据存储硬件,该数据存储硬件定义非对称的故障域树,该非对称的故障域树包括从顶FDL延伸至底FDL的多个FDL。每个FDL可包括至少一个节点,且顶FDL可包括单个根节点。每个其它FDL可包括操作地耦合至该FDL上方的FDL中的节点的至少一个节点,并且底FDL的每个节点可以是用于存储数据的存储节点。非对称的故障域树的至少一个节点可操作地耦合至的该FDL的下方的FDL中的节点的数量与同一FDL的任何其它节点可操作地耦合至的该FDL的下方的FDL中的节点的数量不同。该装置可进一步包括控制器,该控制器包括一个或超过一个处理器,并且操作地耦合至数据存储硬件。该控制器可被配置成使用非对称的故障域树来生成对称的故障域树,并且对称的故障域树的每个FDL的每个节点可操作地耦合至的该FDL下方的FDL中的节点的数量与同一FDL的任何其它节点可操作地耦合至的该FDL下方的FDL中的节点的数量相同。
说明性的方法可包括接收数据对象,该数据对象包括要存储在故障域树中的数据块并且定义故障恢复值。故障恢复值可以是出故障同时能够恢复该数据对象的数据块的最大数量。故障域树可包括从顶FDL延伸至底FDL的多个故障域层级(FDL),并且每个FDL可包括至少一个节点并且可定义故障容差值。故障容差值(FTV)可以是该FDL中被允许出故障的节点的数量。顶FDL可包括单个根节点,并且每个其它FDL可包括操作地耦合至该FDL上方的FDL中的节点的至少一个节点。底FDL的每个节点可以是用于存储数据的存储节点。说明性的方法还可包括,如果该数据对象被存储在该故障域树内并且多个FDL中的给定FDL的超过FTV个节点出故障,则确定该给定FDL是否将导致数据对象不可用。
以上发明内容不旨在描述本公开的每个实施例或者每个实现。通过参考结合附图的以下详细描述和权利要求,更完整的理解将会明显并被领会。换言之,通过阅读下面的详细描述,这些以及各种其它的特征和优点将会明显。
附图说明
结合以下附图来考虑本公开的各个实施例的以下详细描述,可以更完整地理解本公开内容。
图1是说明性的故障域树的图表。
图2是包括用于故障域树内的数据分配的说明性设备的图表。
图3是说明性的对称故障域树的图表。
图4是向故障域树的数据分配的说明性方法的流程图。
图5是用于生成两个对称故障域树的非对称故障域树的图表。
图6是用于生成虚拟对称故障域树、然后根据虚拟对称故障域树生成两个对称故障域树的非对称故障域树的图表。
图7A是非对称故障域树内的数据的分配的图表。
图7B是对称故障域树内的数据的分配的图表。
图8A是非对称故障域树内的数据的分配的图表。
图8B是对称故障域树内的数据的分配的图表。
图9是描绘说明性的连续分配函数的图表。
具体实施方式
本申请中的公开内容涉及故障域树内的数据分配,进一步涉及用于在故障域树内执行和实行此种数据分配的系统、装置和方法。如本申请将进一步描述,故障域树可被定义为在从根层级扩展到存储层级的存储层级结构上安排或分配的数据存储资源。根层级或顶层级可以是机架或数据中心,而存储层级可以是单独的数据存储设备,诸如例如盘驱动器(例如固态存储器、硬磁盘、软盘、磁带、光盘、集成电路、易失性存储器、非易失性存储器、等等)。根层级与存储层级之间的多个层级可包括控制器、机箱、抽屉、扩展器、等等。此外,故障域树(FDT)可被定义为各种各样的硬件资源的集合,诸如例如机架、机箱等等,这些硬件资源的损失可能会导致数据不可用。将在本申请中相对于图1来描述关于说明性故障域树的进一步细节。
可根据各种技术、过程和算法以存储层级结构来存储数据。例如,可根据奇偶校验散布来存储数据。在校验散布中,可将P个盘的池划分成多个组,每个组尺寸为G,并且每个组可以自身足以支持该组内的K个故障。K可被称为具有该组的故障恢复值。如果该组的K个成员保存对于余下的G-K个成员计算的奇偶校验值,这就可以实现。例如,如果P=18且G=6,并且所有K个故障在同一组中,则根据出故障的盘来重构数据需要来自该组的余下G–K个盘的数据。这样的修复方案可能导致低劣的修复以及输入/输出(I/O)性能,至少出于以下原因:修复性能受G-K个设备以及热备件的I/O带宽限制;受影响的组的尚存盘的任何I/O由于修复过程而被妨碍;以及所有的尚存盘必须参与所有故障盘的重构。
奇偶校验散布确保利用了所有P-K个尚存盘的I/O带宽,这样可以提高修复性能。此外,奇偶校验散布可确保并非所有尚存盘都必须参与故障盘的每个数据块(例如表示数据存储的基本单元的数据块)的修复,这样也可以提高修复期间的I/O性能。
如果形成了多个组,则可在块的层级上而不是在盘的层级上实现奇偶校验散布。因此,盘的每个块可属于不同的组,并且多个块一起可括约P个设备的整个池。
故障块的恢复所依赖的尚存盘与尚存盘的总数之比是恢复性能的关键因素。令表示该比例(即故障块的恢复所依赖的尚存盘与尚存盘的总数之比)。则修复率与λ成反比:/>
例如,一个组的G个块由N个数据块,K个奇偶校验块以及S个备用块(例如,备用块是将存储经修复数据的块)组成。在该示例中,可进一步假定在其中存储G个块的具有数据存储层级结构(例如,从顶层列到底层:机架、机箱、控制器、和盘)的各种不同层级的硬件对象处规定了所需的容差。本申请中描述的说明性的系统、装置和方法可以支持所规定的容差,同时仍在较低λ下操作。
例如,为了支持机架(即本示例中的存储层级结构的顶层)的故障,K(即组中的奇偶校验块的数量)可以与任一机架能保持的盘的最大数量相同。然而,这样的布置可能导致大的G并因此导致大的λ,这是不希望有的。
本申请中描述的说明性系统、装置和方法可被描述为支持P个盘的池中的任何K个的故障,为此如果我们需要余下(P-K)个盘中的最多G个,则奇偶校验散布证实保持较小的G/(P-K)比例将提高恢复的性能。此外,本申请中描述的说明性系统、装置和方法可被描述为提供了用于支持在比诸如例如控制器、机箱、机架、控制器等等的比存储或盘层级更高的硬件层级上的故障的途径,并且还在更低的G/(P-K)比例下操作。因此,说明性的系统、装置和方法可以在硬件域的层级结构上实现恢复力,而不影响恢复性能。
如将在本申请进一步描述,硬件资源(例如盘、控制器、机箱、机架、集群等等)可以形成或定义故障域树或层级结构,并且故障域树的每个层级可表示一种类型的硬件资源。盘可以处于故障域树的最低层级或叶层级。可由例如用户来规定故障域树的容差向量或值以及高度的尺寸。每个容差向量或值表示将在故障域树中的该层级处受支持的预期故障。例如,在故障域树的机箱层级,容差向量可以是2,表示机箱层级的两个机箱可能预期出故障。
说明性的系统、装置和方法可被描述为将数据“切削”成数据对象或奇偶校验组的集合。每个数据对象或奇偶教研组可由文件数据以及对于该数据计算的奇偶校验组成。然后可通过故障域树来分配数据对象的文件数据和奇偶校验。在至少一个实施例中,可使用机制或过程来决定如何分配这些数据对象的数据块,以及对于每个数据对象使用哪些硬件资源。附加地,可理解每个数据对象或奇偶校验组通常可包括数据块、奇偶校验块和备用块。数据对象的奇偶校验块的量或奇偶校验组可称为故障恢复值。
说明性的系统、装置和方法可进一步被描述为针对存储树的硬件对象(包括但不限于机架、机箱、控制器和盘)的故障提供支持数据对象恢复力的故障域树。
图1中描绘了说明性的故障域树12。故障域树12从顶故障域层级(FDL)20延伸至底FDL 28。在该示例中,根是顶FDL 20,多个数据存储设备或盘d0...dD-1是底FDL 28。顶FDL20的根可表示故障域树12的最高层级、单个联络点。例如,顶FDL 20的根可以是故障域树12中的所有数据请求(例如写入、读取等等)流经的点。在一个或超过一个实施例中,顶FDL 20的根可以是虚拟根。
在该示例中,三个FDL如下地位于顶FDL 20下方:机架故障域层级22,包括例如多个数据存储机架r0...rR-1,每个可操作地耦合至多个机箱;机箱故障域层级24,包括例如多个数据存储机箱,每个可操作地耦合至多个数据存储设备(为简单起见,仅描绘可操作地耦合至机架r0的机箱e0...eE-1);以及数据存储设备故障域层级28,包括例如多个数据存储设备(为简单起见,仅描绘可操作地耦合至机箱e1的数据存储设备d0...dD-1)。
本申请中描述的故障域树的每个FDL的每个项目或设备可被称为节点。例如,在图1的该示例中,根是节点,数据存储机架r0...rR-1是节点,数据存储机箱e0...eE-1是节点,以及数据存储设备d0...dD-1是节点。可描述每个FDL可包括至少一个节点,该至少一个节点可操作地耦合至该FDL上方的FDL中的节点。例如,数据存储设备FDL 28包括可操作地耦合至节点即机箱e1的多个数据存储设备d0...dD-1。此外,例如,机箱FDL24包括可操作地耦合至节点即机架r0的多个机箱e0...eE-1。底FDL即数据存储设备FDL 28可被配置成存储数据的节点层级。
FDL中的每一个可定义故障容差值,该故障容差值可由位于图1中的FDL的左侧的K值来表示。说明性的系统、装置和方法可包括按照在每个FDL提供容差K的方式在每个FDL上分配数据对象的多个数据块。例如,可按照在机架FDL 22提供指定故障容差值Kr的方式在多个机架上分配数据对象的多个数据块。类似地,在每个机架处,按照在机架FDL 24提供指定故障容差值KE的方式将传入的数据块或单元分配到机箱中。因此,数据对象或奇偶校验组可潜在地具有来自跨越不同硬件域的多个盘的数据块。
图2中描绘了可用于本申请中描述的实施例的说明性系统10。如图2所示,说明性系统10可包括可操作地耦合至本地主机15的故障域树12,例如用于在本地主机15与故障域树12之间传输数据。例如,本地主机15可从故障域树12请求数据,故障域树12可将如此请求的数据提供给本地主机15,或本地主机15可将数据发送至故障域树12以存储。在至少一个实施例中,本地主机15是计算机(诸如例如个人计算机、服务器、等等)。可总体在说明性系统10和/或诸如包括故障域树12的系统10的系统的情境下描述本申请中公开的系统、装置和方法,但这不应当被视为限制本公开的范围。
故障域树12可被定义为按照从顶层级到底层级的层级结构布置的硬件资源的集合,该层级结构被配置成在多个数据存储设备上存储数据,上述多个数据存储设备构成该层级结构的底层级。在本申请中参考图1描述说明性的故障域树12。
可通过一个或超过一个处理器来执行或实现说明性的系统、装置和方法。这些处理器可包括用于生成和使用故障域树、存储数据、读取数据等等的各种电路、逻辑、存储器等等。例如,处理器可包括诸如集成电路、处理器等等的一个或超过一个电路部件,上述一个或超过一个电路部件可以是系统10的部分(例如故障域树12的部分、本地主机15的部分、等等)。
本公开中描述的方法、技术和/或过程(包括归因于处理器的那些方法、技术和/或过程)或各种组成部件至少可以部分地在硬件、软件、固件或其任何组合中实现。例如,这些技术的各种方面可在一个或超过一个处理器(包括一个或超过一个微处理器、DSP、ASIC、FPGA)中、或在任何其它等同的集成或分立的逻辑电路中、以及此类部件的任何组合中实现。术语“处理装置”、“处理器”或“处理电路”可一般地指代前述逻辑电路中的任一个(单独或与其它逻辑电路组合)或任何其它等价的电路。
此类硬件、软件和/或固件可在同一设备或不同的设备内实现,以支持本公开中描述的各种操作和功能。此外,可将所描述的单元、模块或组件中的任一个一起或分别地实现为分立但是能互操作的逻辑器件。将不同的特征描绘为模块或单元是为了凸显不同的功能方面,不一定暗示此类模块或单元必须通过单独的硬件或软件部件来实现。相反,与一个或超过一个模块或单元相关联的功能可由不同的硬件或软件部件来执行,或被集成在共同或单独的硬件或软件部件内。
当实现在软件中时,归于本公开中描述的系统、设备和技术的功能可被具体化为诸如RAM、ROM、NVRAM、EEPROM、闪存存储器、STRAM、RRAM、磁数据存储介质、光数据存储介质之类的计算机可读介质上的指令。这些指令可由一个或超过一个处理器来执行,以支持本公开中描述的功能的一个或超过一个方面。将理解,包括用于执行本申请中描述的说明性方法、过程和算法的一个或超过一个处理器的控制器可以是本地主机15、故障域树12以及图2中未描绘的系统10的任何其它部分中的一个或超过一个的部分,或与本地主机15、故障域树12以及图2中未描绘的系统10的任何其它部分中的一个或超过一个一起被包括。
在继续之前,可定义本公开中的一些术语。数据对象,也可称为奇偶校验组,可被定义为包含数据块、奇偶校验块以及备用块的多个数据块的组。故障域树(FDT)可以是对称的,并且如果同一故障域层级的所有节点具有相同数量的子节点则可被描述为对称FDT。FDT可以是非对称的,并且如果故障域树不对称则可被描述为非对称的FDT。
在一个或超过一个实施例中,可按照约束条件A和主张B来描述说明性的系统、装置和方法。约束条件A包括将n个数据块分配在b个存储桶上,使得对于任何数量k,≤b,在前k个存储桶上(按照所保持数据块的降序)的数据块之和最少。主张B是,如果按照每个存储桶得到floor(n/b)(floor()函数的含义是对于n/b的结果向下取整)个数据块、并且余下的r(r=n mod b)个数据块被分配在b个存储桶的任何r个上从而每个得到单个数据块,则该结果将满足约束条件A。
说明性的情况可以是,当数据块的组被分配在多个盘的集合上时,不存在需要考虑的其它的故障域。如果将该数据块的该组均匀分配在这些盘上并且这些盘所需的容差是KD,则说明性的方法和过程可能仅需要检查前KD个盘(当降序排列时)中的数据块之和小于或等于K(存在单个数据对象或奇偶校验组中的奇偶校验数据块)。这是因为主张B确保均匀分配将获得前KD个盘上的块的最小和。
图3中描绘了说明性的对称故障域树30。为了将数据对象的数据块或奇偶校验组分配到对称FDT 30中,说明性的系统、装置和方法可从根具有要分配的G个数据块开始,并且每个节点可在其子节点之间均匀地分配它从其父节点接收的数据块。一旦该分配结束,就可以在每个层级以其所保持的数据块的降序来排序节点,然后可检查故障容差水平KL以确定KL是否导致出故障的数据块的数量超过K(组中的奇偶校验块的数量,也称为故障恢复值)。如果KL个节点的故障将导致出故障的数据块的数量小于或等于K,则可满足该FDL处的KL个故障。换言之,如果KL个节点的故障将导致导致出故障的数据块的数量超过K,则该FDL处的KL个故障无法被满足。
在图3中所示的说明性的对称FDT 30中,机架、机箱、控制器和盘分别由r、e、c和d来表示,并且在左侧示出了每个FDL的所需故障容差水平Kr、Ke、Kc和Kd。在该示例中,可在FDT 30中存储定义尺寸G=8以及奇偶校验数据块的数量K=2的数据对象或奇偶校验组31。每个节点从其父节点接收的数据块的数量在每个节点上方示出。如图所示,在机架故障域层级32中,所有8个数据块是从其父(即根)接收的。此外,在机架故障域层级32中,由于所有的块去往单个机架,所以不可能满足故障容差值Kr=1。更具体地,如果一个机架(在本示例中,唯一的机架)出故障,则所有八个数据块将是不可用的,这超过了重构该数据对象所需的数据块的最小数量2(即,因为该数据对象31中K=2)。
类似地,机箱故障域层级34处的故障容差水平Ke=2是不可行的,因为来自前Ke个机箱的数据块的数量(即4个数据块)超过了K=2。另一方面,由于每个层级中的两个节点的故障仅会导致两个数据块故障,这等于最大所需K值(即数据对象31中K=2),故而控制器和数据存储设备故障域层级36、38处的故障容差水平得以满足。
图4中描绘了将数据分配到故障域树中的说明性方法40。方法40可例如从本地主机15接收数据对象42以存储在诸如图2-3中描绘的故障域树中。
方法40然后可在44确定故障域树是否是对称的,以确定故障域树是否应当被修改或调整以提供对称的故障域树。如本申请中描述,如果同一层级的所有节点具有相同数量的子节点,则故障域树可以是对称的并且被描述为对称的故障域树,而如果故障域树不是对称的,则该故障域树可以是非对称的并且被描述为非对称的故障域树。
更具体地,如本申请将相对于图5-6进一步描述,如果在44确定要存储该数据对象的故障域树不是对称的,则该方法40可继续以在46生成对称的故障域树。如果在44确定要存储该数据对象的故障域树是对称的,或在46已经生成对称的故障域树,则该方法40可继续以在48将数据块均匀地分配到对称的故障域树48中。
可按照几种不同的方式来在48执行在对称的故障域树上均匀地分配该数据对象的数据块。例如,如本申请中所描述,说明性的系统、装置和方法可根据约束条件A和主张B来均匀地分配数据块。约束条件A包括将n个数据块分配在b个存储桶上(例如FDT的每个层级、FDT中的最低层级等等),使得对于任何数量k,≤b,在前k个存储桶上(按照所保持数据块的降序)的数据块之和最少。主张B是,如果按照每个存储桶得到floor(n/b)(floor()函数的含义是对于n/b的结果向下取整)个数据块、并且余下的r(r=n%b)个数据块被分配在b个存储桶的任何r个上从而每个得到单个数据块,则该结果将满足约束条件A。
此外,例如按照本申请中所描述,对于故障域树的每个故障域层级,如果数据块的数量(G)能被FDL的节点的数量整除,则说明性的系统、装置和方法可将相等数量的数据块分配到该故障域层级内的每个节点。此外,对于FDT的每个FDL,如果数据块的数量(G)不能被FDL的节点的数量整除,则可将相等数量的数据块分配到FDL内的每个节点,然后可将余下数据块的每个数据块均匀地分配到FDL内的不同节点,直到无数据块剩余为止。
“存储桶”可表示FDT的每个FDL处的节点。例如,在FDT的最低层级,即存储设备层级,“存储桶”是数据存储设备(例如盘驱动器)。例如,如果包括26个数据块的数据对象(G=26)将被存储在故障域中且故障域树包括位于最低层级的12个存储设备,则10个存储设备将接收并存储两个数据块,且2个存储设备将接收并存储三个数据块。再例如,如果包括39个数据块的数据对象(G=39)将被存储在故障域中且故障域树包括位于最低层级的10个存储设备,则1个存储设备将接收并存储三个数据块,且9个存储设备将接收并存储四个数据块。
方法40可包括,在50,如果数据对象存储在故障域树内,则根据故障域层级的故障容差值来确定该故障域层级是否会导致数据对象不可用。该过程50可在数据对象被存储在故障域树内之前、之后或之时进行。如本申请中描述,故障域层级中的每一个可定义表示该故障域层级的节点的故障容差的故障容差值。例如,在存储设备故障域层级中,故障容差值可被定义为4,这表示存储设备故障域层级的故障容差是四个存储设备。换言之,存储设备故障域层级的硬件被规定具有4个存储设备故障(其导致来自这些出故障存储设备的数据的不可用)的容差。
此外,例如,在机箱故障域级别中,故障容差值可被定义为2,这表示机箱故障域级别的故障容差是两个机箱。换言之,机箱故障域层级的硬件被规定具有2个机箱故障(其导致来自这些出故障机箱的所有数据的不可用)的容差。
如图4中的过程44、46、48所表示,当故障域树是非对称时,其中的数据对象的存储可被描述为两阶段解决方案。在第一阶段(例如过程46),生成对称树,或从给定非对称树“提取出”对称树。在第二阶段(例如过程48),在第一阶段生成或“提取出”的该对称故障域树上分配数据对象或奇偶校验组。应理解,存在从非对称树生成对称树的各种方式,本申请中描述了几种说明性的方式。
图5-6中描绘了从非对称故障域树生成对称故障域树的说明性示例。从非对称故障域树生成对称故障域树的一个过程或方式可被描述为“将节点度数调谐至最低度节点”,该过程或方式在图5中描绘。在该过程中,在每个故障域层级,可考虑具有最少数量的子节点的节点,并且此节点的子节点的数量可以是dL。对于该“子节点”层级的其它节点,每个父节点保持仅dL个子节点,以提供或生成对称树。
换言之,对于非对称故障域树的每个FDL,可确定该FDL中操作地耦合至该FDL上方的FDL中的同一节点的最小数量的多个节点。然后,可从故障域树移除超出该FDL中操作地耦合至该FDL上方的FDL中的同一节点的该最小数量的任何节点。
这样的过程或方法可导致大量的可能的多个对称树。可预生成这样的对称故障域树,并且可给该系统上创建的文件/对象分配预先生成的多个对称树中的任一个,或者可在需要时生成此类对称故障域树。
参考图5,可提供非对称的故障域树60,并且可根据它生成两个对称的故障域树62、64。非对称的故障域树60包括根下方的两个故障域层级,并且因为同一层级的两个节点r0和r1不具有相同数量的子节点,所以它是非对称的。具体地,r0具有一个子节点即e0,而r1具有两个子节点即e1、e2。
如图所示,由于r0包括或可操作地耦合至单个子节点即e0,通过确定节点r0、r1层级处的子节点的最小数量,可生成或“提取出”对称的故障域树62、64。因此,由对称故障域树62、64中的每个节点r0、r1“保持”的子节点的数量是1。同样,第一对称故障域树62的节点r1保持其子节点之一e1,同时移除另一子节点e2。此外,第二对称故障域树64的节点r1与第一对称故障域树62的操作相反;即,其节点r1保持其子节点之一e2,同时移除另一子节点e1。
根据非对称故障域树生成对称故障域树的另一过程或方式可被描述为“自下而上方法”,其中从倒数第二层级开始,导致非对称的那个节点可从该层级被去掉。换言之,对于非对称故障域树的从底故障域层级开始并朝着顶故障域层级行进的每个故障域层级,可移除导致非对称的故障域层级中的任何节点。
这种方式可能导致上方的故障域层级中的非对称,并且来自那些层级的那些受影响的节点也会被去掉。在这种“自下而上方法”中,如果故障域层级的所有节点具有不同数量的子节点,则在采用“自下而上方法”之后,可进一步采用“将节点度数调谐至最低度节点”。因此,根据参考图5描述的过程,可对于被移除节点的每一个而生成对称的故障域树。
根据非对称故障域树生成对称故障域树的另一过程或方式可包括:如图6所示,使用非对称故障域树生成一个或超过一个虚拟对称故障域树,然后使用一个或超过一个虚拟对称故障域树来生成一个或超过一个对称故障域树。虚拟对称故障域树可被称为“虚拟的”,这是因为虚拟对称故障域树在实际的硬件资源(例如机架、机箱、存储设备等等)中不存在,而是硬件资源可被映射至的虚拟构造。
在一个三十六岁中,虚拟对称树是利用“将节点度数调谐至最低度节点”过程来构造的。因此,如果层级L的最低度节点的度数是dL,则虚拟对称树在层级L的所有节点将具有度数dL。当数据对象或奇偶校验组被映射至硬件资源,则来自输入非对称故障域树和该虚拟故障域树的节点之间的实际映射可能利用使用数据对象索引作为输入的一个或超过一个过程来进行。
如图6所示,提供非对称的故障域树60(与图5中描绘的相同),并且使用本申请中相对于图5描述的相同过程从该非对称的故障域树生成虚拟的对称故障域树66,例如将节点度数调谐至同一层级的最低度节点。虚拟对称故障域树66的虚拟节点由角分符号指定,以指示此种节点不是表示实际的硬件资源,而是虚拟结构。
然后,使用虚拟对称树66可以生成使用实际硬件资源的两个可能的故障域树68、70。换言之,实际硬件资源可被映射至虚拟对称树66。例如并且更具体地,对称故障域树68将来自虚拟故障域树66的e’1映射至e1,并且故障域树70将来自虚拟故障域树66的e’1映射至e2。因此,使用虚拟对称树66可以生成使用实际硬件资源的两个对称的故障域树68、70。在一个或超过一个实施例中,此种生成可实时完成。
在提供或生成一个或超过一个对称故障域树之后,可使用说明性的系统、装置和方法在该一个或超过一个对称故障域树上存储数据对象。图7A-7B和图8A-8B提供使用各种数据分配过程将数据对象存储至故障域树的说明性示例。
图7A-7B的示例利用非对称的故障域树72,该故障域树72具有或定义了三个故障域层级,包括层级0的根层级(换言之,具有从根起算高度为2的树)。在故障域层级1,故障域树72包括三个节点(a,b,c),而在故障域层级2,故障域树72包括十个节点(a0,a1,a2,a3,b0,b1,b2,c0,c1,c2)。提供数据对象74以存储在故障域树72内,该数据对象74限定或具有十个数据块的尺寸(G=10),包括两个奇偶校验数据块(K=2)。因此,超过两个(即三个或超过三个)所存储的数据块的同时故障将导致数据对象74的恢复的故障。
如图7A中描绘的数据分配过程中所示,按照故障域树72的底层不对称性来分配数据对象74。节点a接收四个数据块,这是因为节点a具有同样多的子节点,并且相同的逻辑适用于节点b和c,因为节点b和c各自接收三个数据块(在节点右侧以数字示出了故障域层级1的每个节点接收或被分配的数据块的数量)。在随后的层级,所有节点以每个子节点单个数据块单元来传递,并且在最后,故障域层级2的所有叶节点包含一个数据块或单元(在该节点下方以数字指示了层级2的每个节点接收或被分配的数据块的数量)。因此,图7A中描绘的数据分配过程在故障域层级2提供了两个节点故障的容差(例如,其原因是层级2的每个节点存储单个数据块并且K=2),并在故障域层级1提供了零个故障的容差(例如,其原因是层级1的任何节点的故障将导致最少三个数据块故障,而这超过了两个)。
图7B中描绘的数据分配过程利用说明性的系统、装置和方法来将数据对象存储到对称的故障域树中。更具体地,从非对称的故障域树“提取”或移除故障域层级2的节点a3,以提供对称的故障域树76(利用虚线来描绘故障域层级2的节点a3以指示其被移除)。
因此,根的子节点(即节点a,b,c)中的每一个将具有位于其下方的三个节点,或可操作地耦合至其下方的三个节点。当将数据对象74的十个数据块分配到对称故障域树76中时,故障域层级1的三个节点a,b,c中的一个将接收四个数据块,并且故障域层级1的余下节点将各自接收三个数据块(在节点的右侧以数字指示了故障域层级1的每个节点接收或被分配的数据块的数量)。在该示例中,节点a已经接收了四个数据块,因此在该对称故障域树中,故障域层级2的至少一个叶节点a0接收数据对象74的两个数据块(在节点的下方以数字指示了故障域层级2的每个节点接收或被分配的数据块的数量)。因此,图7B中描绘的数据分配过程在故障域层级2提供了1个故障的容差(例如,其原因是故障域层级2的至少一个节点存储两个数据块并且K=2),并在故障域层级1提供了零个故障的容差(例如,其原因是层级1的任何节点的故障将导致三个数据块故障,而这超过了两个)。
如图7A-7B中描绘的说明性示例中所示,在接收数据对象74时,不可能实现对于故障域树72、76的层级1的任何容差。在至少一个实施例中,层级1可被一起略过,并且可假定其派生节点直接连接至根或层级0。其原因是,如果不可能实现对于给定层级的任何非零容差,则不可能实现对于其上方的层级的任一层级的任何非零容差。此种说明性的技术可通过除了根层级之外的任何层级来实现。
图8A-8B的示例利用非对称的故障域树82,该故障域树82具有或定义了三个故障域层级,包括故障域层级0的根层级(换言之,具有从根起算高度为2的树)。在故障域层级1,故障域树82包括三个节点(a,b,c),而在故障域层级2,故障域树82包括九个节点(a0,a1,a2,a3,b0,b1,b2,c0,c1)。提供数据对象84以存储在故障域树82内,该数据对象84限定或具有九个数据块的尺寸(G=9),包括三个奇偶校验数据块(K=3)。因此,超过三个(即四个或超过四个)所存储的数据块的同时故障将导致数据对象84的恢复的故障。
如图8A中描绘的数据分配过程中所示,按照故障域树82的底层不对称性来分配数据对象84。节点a接收四个数据块,因为节点a具有或可操作地耦合至节点a下方的同样多的子节点;节点b接收三个数据块,因为节点b具有或可操作地耦合至节点b下方的同样多的子节点;节点c接收两个数据块,因为节点c具有或可操作地耦合至节点c下方的同样多的子节点(在节点右侧以数字指示了故障域层级1的每个节点接收或被分配的数据块的数量)。在随后的层级,所有节点以每个子节点单个数据块单元来传递,并且在最后,故障域层级2的所有叶节点包含一个数据块或单元(在该节点下方以数字指示了故障域层级2的每个节点接收或被分配的数据块的数量)。因此,图8A中描绘的数据分配过程在故障域层级2允许三个故障的容差(例如,其原因是层级2的每个节点存储单个数据块并且K=3),并在层级1允许零个故障的容差(例如,其原因是节点a的故障将导致超过三个数据块故障)。
图8B中描绘的数据分配过程利用说明性的系统、装置和方法来将数据对象存储到对称的故障域树中。更具体地,从非对称的故障域树“提取”或移除故障域层级2的节点a2、节点a3、和节点b2,以提供对称的故障域树86(利用虚线来描绘故障域层级2的节点a2、节点a3、和节点b2以指示其被移除)。
因此,根的子节点(即节点a,b,c)中的每一个将具有位于其下方的两个节点,或可操作地耦合至其下方的两个节点。当将该数据对象84的9个数据块分配到对称故障域树86中时,故障域层级1的三个节点a、b或c中的每一个接收三个数据块(在节点的右侧以数字指示了故障域层级1的每个节点接收或被分配的数据块的数量)。由于故障域层级1的每个节点包括两个子节点并接收三个数据块,故一个子节点接收两个数据块,另一个子节点接收一个数据块(在节点下方以数字指示了故障域层级2的每个节点接收或分配的数据块的数量)。例如,节点a0接收数据对象84的两个数据块,且节点a1接收数据对象84的一个数据块。因此,图8B中描绘的数据分配过程在故障域层级2允许1个故障的容差(例如,其原因是故障域层级2的至少两个节点存储两个数据块并且K=3),并在故障域层级1允许1个故障的容差(例如,其原因是故障域层级1的每个节点分配三个数据块,这等于K值为3)。
在下文中提供了连续分配函数的情况的证明,这可扩展至分立情况。如图9中描述的示例所示,令u(x)(以虚线表示)和v(x)(以实线表示)是[0,X]上的两个非递增的连续函数,使得两个函数下方的面积相同。此外,令u(x)为单值函数。
主张1:存在点xc∈[0,X]使得u(xc)=v(xc)。
证明:如果在给定范围内v(x)整体位于u(x)上方或整体位于u(x)下方,则所需的点将不存在。在这两种情况下,这两个函数下方的面积将不相同,因此产生矛盾。主张B的连续版本可陈述如下:
对于任何x∈[0,X],
等式仅在x=0和x=X时成立。
证明:由于主张1,交叉点xc存在。令x≤xc,这违背了该主张。由于对于x<xc而言v(x)位于u(x)上方,在[0,xc]上v(x)下方的面积必须大于u(x)在相同范围上的面积,因此产生矛盾。
令x>xc,这违背了该主张。由于对于x>xc而言v(x)位于u(x)下方(由于非递增),在[xc,X]上v(x)下方的面积严格小于u(x)在相同范围上的面积。假定在该x处违背了该主张,则v(x)下方的面积将在整个[0,X]上保持小于u(x),由此违背了恒定面积的假定,因此产生矛盾。由于在[0,X]中不存在违背该主张的x,则该主张得以成立。
在以上描述中,参照形成本说明书一部分的附图集合,其中通过图示示出了若干特定实施例。应当理解的是,可构想和作出其他实施例,而不背离本公开内容的范围或精神(例如,仍落在其范围或精神内)。因此,以上详细描述不应按照限制的意义来理解。本文中所提供的定义用于便于对本文中频繁使用的某些术语的理解,而不是为了限制本公开内容的范围。
如说明书以及所附权利要求书中所使用地,单数形式的“一”、“一个”以及“该”涵盖具有复数引用的实施例,除非该内容另外明确地指出。如说明书以及所附权利要求书中所使用地,术语“或”一般以包括“和/或”的意义来使用,除非该内容另外明确地指出。
术语“耦合”或“连接”指的是多个要素直接地(彼此直接接触)或间接地(具有位于其间和附接两个要素的一个或超过一个要素)彼此附接。任一术语可被“操作地”和“能操作地”(可互换地使用)修饰,以描述该耦合或连接被配置成允许这些部件交互以执行至少一些功能(例如控制器可操作地耦合至存储设备以在其间传输数据)。
在本说明书中,对“一个实施例”、“一实施例”、“某些实施例”或“一些实施例”等等的引用意味着结合该实施例描述的特定特征、构造、组成或特性被包括在本公开的至少一个实施例中。因此,在本申请的各个位置中的这些短语的出现不一定指代本公开的同一实施例。此外,在一个或超过一个实施例中,能以任何合适的方式来组合特定的特征、构造、组成或特性。
如说明书以及所附权利要求书中所使用地,单数形式的“一”、“一个”以及“该”涵盖具有复数引用的实施例,除非该内容另外明确地指出。如说明书以及所附权利要求书中所使用地,术语“或”一般以包括“和/或”的意义来使用,除非该内容另外明确地指出。
如本申请中使用,“有”、“具有”、“包含”、“含有”、“包括”、“包涵”等等以开放式的含义来使用,并且通常意味着“包括但不限于”。将理解,“基本由……组成”、“由……组成”等等被包含在“包括”中,以此类推。
术语“和/或”意味着所列出的要素中的一个或全部,或所列出的要素中的至少两个的组合。
列表后的短语“的至少一个”、“包括……的至少一个”、以及“的一个或超过一个”表示列表中的项目中的任一个以及该列表中的两个或超过两个项目的任何组合。
上述实现以及其它实现落在所附权利要求书的范围内。本领域技术人员将理解本公开可利用除所公开内容之外的实施例来实施。出于说明而非限制目的给出了所公开的实施例,且本发明仅受限于所附权利要求。
参考图1-9描述了说明性的系统、装置和方法。本领域技术人员可以明了,来自一个实施例的要素或过程可以与其它实施例的要素或过程组合地使用,并且使用本申请中陈述的特征的组合的此种系统、装置和方法的可能实施例不限于附图中示出或本申请中描述的特定实施例。此外,将认识到,本申请中的过程的时序和各个要素的尺寸和形状可被修改,但仍然落在本公开的范围内,尽管特定时序、要素的一个或超过一个形状和/或尺寸或类型可以优于其它时序、形状和/或尺寸或类型。
Claims (19)
1.一种系统,包括:
对称的故障域树,包括从顶FDL延伸至底FDL的多个故障域层级(FDL),每个FDL包括至少一个节点,所述顶FDL包括单个根节点,每个其它FDL包括能操作地耦合至该FDL上方的FDL中的节点的至少一个节点,所述底FDL的每个节点是用于存储数据的存储节点,其中,所述对称的故障域树的每个FDL的每个节点操作地耦合至的位于所述FDL下方的FDL中的节点的数量与同一FDL的任何其它节点操作地耦合至的位于所述FDL下方的FDL中的节点的数量相同;以及
控制器,包括一个或超过一个处理器,并且被配置成用于:
接收包括多个数据块的数据对象,以及
在所述对称的故障域树上均匀地分配所述数据对象的所述多个数据块。
2.如权利要求1所述的系统,其特征在于,相应的FDL的节点的故障导致在相应的FDL下方的多个FDL的操作地耦合至出故障的节点的所有节点出故障,其中存储节点的故障导致存储在其上的数据不可用。
3.如权利要求1所述的系统,其特征在于,在所述对称的故障域树上均匀地分配所述数据对象的多个数据块包括:对于每个FDL,
如果所述多个数据块的数量能被FDL的节点的数量整除,则将相等数量的数据块分配至所述FDL内的每个节点;
如果所述多个数据块的数量不能被FDL的节点的数量整除,则将相等数量的数据块分配至所述FDL内的每个节点,然后将余下数据块的每个数据块分配至所述FDL内的不同节点,直到没有数据块余下。
4.如权利要求1所述的系统,其特征在于,所述多个FDL中的至少一个包括一类设备,其中所述一类设备包括机架、机箱、控制器和盘中的一者。
5.如权利要求4所述的系统,其特征在于,所述盘包括固态盘。
6.如权利要求1所述的系统,其特征在于,所述控制器进一步配置成:
如果所述数据对象被存储在所述故障域树内并且所述多个FDL中的给定FDL的节点的故障容差值未满足,则确定所述给定FDL是否将导致数据对象不可用。
7.一种装置,包括:
数据存储硬件,所述数据存储硬件定义非对称的故障域树,所述非对称的故障域树包括从顶FDL延伸至底FDL的多个FDL,每个FDL包括至少一个节点,所述顶FDL包括单个根节点,每个其它FDL包括能操作地耦合至该FDL上方的FDL中的节点的至少一个节点,所述底FDL的每个节点是用于存储数据的存储节点,所述非对称的故障域树的至少一个节点操作地耦合至的下方的FDL中的节点的数量与同一FDL的任何其它节点操作地耦合至的下方的FDL中的节点的数量不同;以及
控制器,包括一个或超过一个处理器并且操作地耦合至所述数据存储硬件,所述控制器配置成利用所述非对称的故障域树来生成对称的故障域树,所述对称的故障域树的每个FDL的每个节点操作地耦合至的位于该FDL下方的FDL中的节点的数量与同一FDL的任何其它节点操作地耦合至的位于该FDL下方的FDL中的节点的数量相同。
8.如权利要求7所述的装置,其特征在于,利用所述非对称的故障域树来生成对称的故障域树包括:使用所述非对称的故障域树来生成多个对称的故障域树。
9.如权利要求7所述的装置,其特征在于,利用所述非对称的故障域树来生成对称的故障域树包括:
对于所述非对称的故障域树中的每个FDL:
确定所述FDL中的能操作地耦合至该FDL上方的FDL中的同一节点的多个节点的最小数量;以及
移除所述FDL中能操作地耦合至该FDL上方的FDL中的同一节点的超过所述最小数量的任何节点。
10.如权利要求7所述的装置,其特征在于,利用所述非对称的故障域树来生成对称的故障域树包括:
对于所述非对称的故障域树的从所述底FDL开始并朝着所述顶FDL前进的每个FDL,移除该FDL中导致非对称性的任何节点。
11.如权利要求10所述的装置,其特征在于,利用所述非对称的故障域树来生成对称的故障域树包括:
对于被移除的每个节点生成对称的故障域树。
12.如权利要求7所述的装置,其特征在于,利用所述非对称的故障域树来生成对称的故障域树包括:
利用所述非对称的故障域树来生成虚拟对称故障域树;以及
利用所述虚拟对称故障域树来生成一个或超过一个对称的故障域树。
13.一种方法,包括:
接收数据对象,所述数据对象包括要存储在故障域树中的多个数据块并定义故障恢复值,所述故障恢复值是出故障同时能够恢复所述数据对象的数据块的最大数量,所述故障域树包括从顶FDL延伸至底FDL的多个故障域层级(FDL),每个FDL包括至少一个节点并定义故障容差值(FTV),所述故障容差值是所述FDL中被允许出故障的节点的数量,所述顶FDL包括单个根节点,每个其它FDL包括能操作地耦合至该FDL上方的FDL中的节点的至少一个节点,所述底FDL的每个节点是用于存储数据的存储节点;以及
如果所述数据对象被存储在所述故障域树内并且所述多个FDL中的给定FDL的超过FTV个节点出故障,则确定所述给定FDL是否将导致数据对象不可用。
14.如权利要求13所述的方法,其特征在于,如果所述数据对象被存储在所述故障域树内并且所述多个FDL中的给定FDL的超过FTV个节点出故障,则确定所述给定FDL是否将导致数据对象不可用包括:
如果所述给定FDL中根据所述FTV被允许出故障的多个节点出故障,则确定将不可用的不可用数据块的数量;以及
将不可用数据块的所述数量与所述故障恢复值作比较。
15.如权利要求13所述的方法,其特征在于,所述底FDL的FTV大于所述底FDL上方的多个FDL的故障容差值。
16.如权利要求13所述的方法,其特征在于,所述故障域树的每个FDL的每个节点操作地耦合至的位于该FDL下方的FDL中的节点的数量与同一FDL的任何其它节点操作地耦合至的位于该FDL下方的FDL中的节点的数量相同,其中相应的FDL的节点的故障导致在相应的FDL下方的多个FDL的操作地耦合至出故障的节点的所有节点出故障,其中所述存储节点的故障导致存储在其上的数据不可用。
17.如权利要求13所述的方法,其特征在于,还包括在所述故障域树上均匀地分配所述数据对象的多个数据块。
18.如权利要求17所述的方法,其特征在于,在所述故障域树上均匀地分配所述数据对象的多个数据块包括:对于每个FDL,
如果所述多个数据块的数量能被FDL的节点的数量整除,则将相等数量的数据块分配至所述FDL内的每个节点;以及
如果所述多个数据块的数量不能被FDL的节点的数量整除,则将相等数量的数据块分配至所述FDL内的每个节点,然后将余下数据块的每个数据块分配至所述FDL内的不同节点,直到没有数据块余下。
19.如权利要求13所述的方法,其特征在于,所述多个FDL中的至少一个包括一类设备,其中所述一类设备包括机架、机箱、控制器和盘中的一者。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2019103210 | 2019-02-05 | ||
RU2019103210 | 2019-02-05 | ||
US16/545,405 US11157482B2 (en) | 2019-02-05 | 2019-08-20 | Data distribution within a failure domain tree |
US16/545,405 | 2019-08-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522675A CN111522675A (zh) | 2020-08-11 |
CN111522675B true CN111522675B (zh) | 2024-04-05 |
Family
ID=71838073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010080603.2A Active CN111522675B (zh) | 2019-02-05 | 2020-02-05 | 故障域树内的数据分配 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11157482B2 (zh) |
CN (1) | CN111522675B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242819B (zh) * | 2022-07-22 | 2024-07-16 | 济南浪潮数据技术有限公司 | 分布式存储的选路方法及相关组件 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663042A (zh) * | 2014-09-12 | 2017-05-10 | 微软技术许可有限责任公司 | 可扩展数据存储池 |
CN108540315A (zh) * | 2018-03-28 | 2018-09-14 | 新华三技术有限公司成都分公司 | 分布式存储系统、方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9723054B2 (en) * | 2013-12-30 | 2017-08-01 | Microsoft Technology Licensing, Llc | Hierarchical organization for scale-out cluster |
US9582363B2 (en) | 2014-06-09 | 2017-02-28 | International Business Machines Corporation | Failure domain based storage system data stripe layout |
US20160349993A1 (en) * | 2015-05-29 | 2016-12-01 | Cisco Technology, Inc. | Data-driven ceph performance optimizations |
DE112016003598T5 (de) | 2015-10-20 | 2018-05-30 | International Business Machines Corporation | Gleichzeitige Massenverarbeitung von baumbasierten Datenstrukturen |
US10114716B2 (en) * | 2015-11-20 | 2018-10-30 | International Business Machines Corporation | Virtual failure domains for storage systems |
US10289502B2 (en) | 2016-03-07 | 2019-05-14 | International Business Machines Corporation | User-defined failure domains for software-defined storage systems |
WO2017196315A1 (en) | 2016-05-11 | 2017-11-16 | Hitachi, Ltd. | Data storage system and process for reducing read and write amplifications |
US10339016B2 (en) * | 2017-08-10 | 2019-07-02 | Rubrik, Inc. | Chunk allocation |
US11520506B2 (en) * | 2018-01-31 | 2022-12-06 | Salesforce.Com, Inc. | Techniques for implementing fault domain sets |
US11210317B2 (en) * | 2019-01-16 | 2021-12-28 | Walmart Apollo, Llc | System and method for high-availability in a distributed computing environment including multiple availability zones |
-
2019
- 2019-08-20 US US16/545,405 patent/US11157482B2/en active Active
-
2020
- 2020-02-05 CN CN202010080603.2A patent/CN111522675B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663042A (zh) * | 2014-09-12 | 2017-05-10 | 微软技术许可有限责任公司 | 可扩展数据存储池 |
CN108540315A (zh) * | 2018-03-28 | 2018-09-14 | 新华三技术有限公司成都分公司 | 分布式存储系统、方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US11157482B2 (en) | 2021-10-26 |
US20200250173A1 (en) | 2020-08-06 |
CN111522675A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780386B (zh) | 一种数据存储的方法、装置和系统 | |
US7565569B2 (en) | Data protection in a mass storage system | |
US20230058369A1 (en) | Distribution of resources for a storage system | |
US10019192B2 (en) | Policy-based hierarchical data protection in distributed storage | |
JP6903005B2 (ja) | ストレージクラスター | |
JP3859994B2 (ja) | ストレージ・デバイス上でのスペースの割振りを管理する方法、システム、およびプログラム記憶媒体 | |
US20180246668A1 (en) | Storage system | |
US20190391889A1 (en) | Allocating part of a raid stripe to repair a second raid stripe | |
US20140082279A1 (en) | Distributing capacity slices across storage system nodes | |
CN105892934B (zh) | 用于存储设备管理的方法和装置 | |
JP2009538482A (ja) | Raid管理、再割振り、およびリストライピングのためのシステムおよび方法 | |
JP2009532812A5 (zh) | ||
US9436394B2 (en) | RAID random distribution scheme | |
US7308532B1 (en) | Method for dynamically implementing N+K redundancy in a storage subsystem | |
JP2018508073A (ja) | データ除去、割り当て、及び再構築 | |
US8020032B2 (en) | Method for providing deferred maintenance on storage subsystems | |
US20170212705A1 (en) | Dynamic Weighting for Distributed Parity Device Layouts | |
US20200278913A1 (en) | Policy-based hierarchical data protection in distributed storage | |
CN111966291B (zh) | 一种存储集群中的数据存储方法、系统及相关装置 | |
CN109213428B (zh) | 用于管理存储系统的方法和设备 | |
US9519542B2 (en) | Storage control device and storage control method | |
CN111522675B (zh) | 故障域树内的数据分配 | |
WO2014101144A1 (zh) | 储存数据的方法及装置 | |
CN111124250A (zh) | 用于管理存储空间的方法、设备和计算机程序产品 | |
US9811280B2 (en) | Efficient method of combining parity groups for uniform load distribution and maximizing parallelization in parity de-clustered and sliced disk raid architecture |
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 |