CN111625400B - 一种数据冗余处理方法、装置及存储介质 - Google Patents
一种数据冗余处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111625400B CN111625400B CN202010456949.8A CN202010456949A CN111625400B CN 111625400 B CN111625400 B CN 111625400B CN 202010456949 A CN202010456949 A CN 202010456949A CN 111625400 B CN111625400 B CN 111625400B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- processing
- erasure code
- main node
- 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
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 68
- 238000013500 data storage Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 34
- 238000011084 recovery Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明实施例提供了一种数据冗余处理方法、装置及存储介质,所述方法包括:获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障;若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理;能够检测冗余处理中IO数据是否能够完成读写处理,再对存在IO数据丢失以及故障时,对IO数据进行恢复,使得整个IO数据冗余处理完整性更优。
Description
技术领域
本发明涉及人工智能中的数据处理技术领域,特别是涉及一种数据冗余处理方法、装置及存储介质。
背景技术
云存储是一种网上在线存储的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上。托管公司运营大型的数据中心,需要数据存储托管的人,则透过向其购买或租赁存储空间的方式,来满足数据存储的需求。数据中心营运商根据客户的需求,在后端准备存储虚拟化的资源,并将其以存储资源池的方式提供,客户便可自行使用此存储资源池来存放文件或对象。
云存储系统的三个指标:高可靠性,低存储开销,高读写性能;多副本和纠删码是两种在存储系统中广泛使用的策略,它们在保证高可靠性的前提下,选择了不同极端的权衡,多副本存储开销大,但性能较好;纠删码存储开销低,但性能较差。
目前,获取待存储数据的存储策略标识;采用与存储策略标识相应的存储方式存储待存储数据,存储策略标识用于指示采用以下存储方式的至少之一:副本冗余处理方式、纠删编解码处理方式;即为多副本以及纠删码进行数据冗余;多副本以及纠删码的方式进行数据冗余是较为常见的数据处理方式,而目前对于当在多副本以及纠删码的方式进行数据冗余处理时,针对数据可能存在的丢失以及故障的问题;以及在数据丢失或故障后,数据恢复具有难度,且不易操作。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据冗余处理方法和相应的一种数据冗余处理装置。
为了解决上述问题,本发明实施例公开了一种数据冗余处理方法,所述方法包括:
获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;
所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;
检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障;
若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理;
进一步地,所述写入IO处理的执行方法包括:
获取主节点内的原始数据,其中,所述原始数据为在获取IO数据之前已经存储在主节点内的初始数据;
将所述主节点内的原始数据分划分为K份主数据以及M份校验数据,并生成K+M份数据;将所述K+M份数据写入至所述纠删码节点内;
当接收到所述IO数据处理请求时,将所述获取的IO数据分别写入至所述主节点的原始数据中以及所述纠删码节点的K+M份数据中;
当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,完成所述写入IO处理;
进一步地,所述当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理,包括:
对所述响应信息进行场景识别;
当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理;
当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败;
进一步地,所述当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理,包括:
若主节点内的IO数据写入成功,且主节点对应的纠删码节点的K+M份数据写入成功的数据份数≥K份,则成功写入IO处理;或者,
若主节点内的IO数据写入失败,但主节点对应的纠删码节点内的K+M份数据中K+M份数据都写入成功,则成功写入IO处理;
进一步地,所述当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败,包括:
若主节点内的IO数据写入失败,且主节点对应的纠删码节点内的K+M份数据中K+M份数据都写入失败,则写入IO处理失败;或者,
若主节点内的IO数据写入成功,但主节点对应的纠删码节点的K+M份数据写入的数据份数<K份,则写入IO处理失败;
进一步地,所述读出IO处理的执行方法包括:
在所述主节点内读出待读出的IO数据,所述待读出的IO数据为主节点内的原始数据;
所述原始数据在客户端接收后完成读出IO处理;
进一步地,所述检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障,包括:
检测所述集合内的主节点和与主节点对应的纠删码节点,识别故障位置;
当主节点故障时,生成新的临时主节点,进行写入IO处理以及读出IO处理;
当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数≤M时,在写入IO处理中纠删码节点无需写入IO数据以及读出IO处理;
当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数>M时,则中断写入IO处理;
当主节点和与主节点对应的纠删码节点同时故障,且故障的纠删码节点数据的份数≤M时,选取新的临时主节点,在写入IO处理中纠删码节点无需写入IO数据,在读出IO处理中将主节点内的原始数据读出;
进一步地,所述故障节点恢复包括主节点故障恢复和纠删码节点故障恢复,所述若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理,包括:
当所述主节点故障时,通过与所述主节点对应的纠删码节点内读取IO数据进行所述主节点故障恢复;
当所述纠删码节点故障时,且当前所述纠删码节点为缺失对象的纠删码节点,则其他纠删码节点读取IO数据以进行所述纠删码节点故障恢复;
本发明实施例还公开了一种数据冗余处理装置,所述装置包括:
获取模块,用于获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;
接收模块,用于所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;
检测模块,用于检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障;
完成模块,用于若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理;
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时,实现上述方法的步骤。
本发明实施例包括以下优点:获取IO数据映射在集合内,通过集合内的IO数据接收相应的IO数据处理请求,IO数据处理请求中包括写入IO数据以及读出IO数据的请求处理,并根据相应的IO数据处理请求进行写入IO处理以及读出IO处理;进行IO数据处理请求后生成响应信息,根据对响应信息进行场景识别,其中响应信息场景包括写入IO处理成功场景以及写入IO失败处理场景,根据成功和失败对写入IO数据请求处理进行判断;同时,对读出IO处理的判断;对集合内的主节点以及主节点对应的纠删码节点进行是否存在IO数据存储故障检测,根据检测结果判断是否完成写入IO处理以及读出IO处理,若不存在故障则完成写入IO处理以及读出IO处理,即完成数据冗余处理;若存在故障则进一步检测故障节点,并对故障节点进行恢复,待数据恢复后完成数据冗余处理;本申请通过检测在IO数据冗余处理中IO数据是否能够完成读写的请求,对在数据冗余处理中存在的IO数据丢失以及IO数据故障时,对IO数据进行恢复,使得整个IO数据冗余处理的完整性更优。
附图说明
图1是本发明一种数据冗余处理方法实施例一的步骤流程图;
图2是本发明一种数据冗余处理方法实施例二的步骤流程图;
图3是本发明一种数据冗余处理方法实施例三的步骤流程图;
图4是本发明一种数据冗余处理方法实施例四的步骤流程图;
图5是本发明一种数据冗余处理方法实施例五的步骤流程图;
图6是本发明一种数据冗余处理方法实施例六的步骤流程图;
图7是本发明一种数据冗余处理方法实施例七的步骤流程图;
图8是本发明一种数据冗余处理方法实施例八的步骤流程图;
图9是本发明一种数据冗余处理装置某一实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种数据冗余处理方法实施例一的步骤流程图,具体可以包括如下步骤:
步骤S10,获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;
步骤S20,所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;
步骤S30,检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障;
步骤S40,若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理。
先获取不同的IO数据,所述IO数据指的是通过当前云存储系统通过IO即I对应输入(Input),O对应输出(Output),分为IO设备和IO接口两个部分,云存储系统通过IO设备或IO接口进行传输的缓存数据;再将不同IO数据映射到集合内,根据集合内的主节点以及主节点对应的纠删码节点,将IO数据映射存储到所述主节点以及所述主节点对应的纠删码节点,其映射是指两个元素的集之间元素相互对应的关系,即在一个集合包含主节点和纠删码节点,若主节点内映射有一个IO数据并设为元素A,其主节点对应的纠删码节点内也具有该一个IO数据唯一对应的IO数据并设为元素B,其中元素A和元素B因主节点与纠删码节点相对应的关系,其元素A到元素B为主节点到纠删码节点的一个映射;根据集合内的主节点以及主节点对应的纠删码节点进行IO数据处理,其中IO数据处理包括写入IO处理和读出IO处理;再检测集合内的主节点以及主节点对应的纠删码节点是否存在所述IO数据存储故障,通过是否完成写入IO处理以及读出IO处理判断其故障的节点,若存在故障,则判断其故障节点为主节点还是主节点对应的纠删码节点,并对其进行故障恢复;若不存在故障,则完成IO数据冗余处理。
在本发明实施例中,通过获取不同的IO数据,并将其映射到同一的集合内,先对其进行IO数据处理,并判断是否完成相应的写入IO处理以及读出IO处理,再检测集合内的IO数据是否存在故障,若具有故障,则恢复故障,若无故障,则完成数据冗余处理;能够检测IO数据冗余处理中IO数据是否能够完成读写的请求,再对在数据冗余处理中存在的IO数据丢失以及IO数据故障时,恢复故障的节点,使得整个IO数据冗余处理的完整性更优。
参照图2,示出了本发明的一种数据冗余处理方法实施例二的步骤流程图,所述写入IO处理的执行方法,具体可以包括如下步骤:
步骤S2011,获取主节点内的原始数据,其中,所述原始数据为在获取IO数据之前已经存储在主节点内的初始数据;
步骤S2012,将所述主节点内的原始数据分划分为K份主数据以及M份校验数据,并生成K+M份数据;将所述K+M份数据写入至所述主节点对应的纠删码节点内;
步骤S2013,当接收到所述IO数据处理请求时,将所述获取的IO数据同时写入至所述主节点的原始数据中以及所述纠删码节点的K+M份数据中;
步骤S2014,当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理。
在本发明实施例中,通过获取主节点内的原始数据,其中,所述原始数据为在获取IO数据之前已经存储在主节点内的初始数据;将所述主节点内的原始数据划分出K份主数据,和计算出M份校验数据,然后将K+M份数据写入至所述主节点对应的纠删码节点;当所述主节点以及所述主节点对应的目标纠删码节点接收到写入IO处理时,在主节点内的原始数据中写入待写入的IO数据,同时在主节点对应的纠删码节点内K+M份数据中写入待写入的IO数据;当所述主节点对应的纠删码节点写入完成时,向主节点发送写入完成的响应信息;主节点收到所述主节点对应的纠删码节点的写入完成响应信息后,且主节点自身完成了对IO数据的写入,此时,主节点向前端客户端响应写入IO完成的信息,代表此次写入IO处理完成。
参照图3,示出了本发明的一种数据冗余处理方法实施例三的步骤流程图,所述当所述主节点对应的纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理,具体可以包括如下步骤:
步骤S20141,对所述响应信息进行场景识别;
步骤S20142,当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理;
步骤S20143,当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败。
在本发明实施例中,通过主节点发送响应信息,通过对响应信息进行场景识别,其中响应信息场景包括写入IO处理成功场景和写入IO处理失败场景;通过响应信息场景中是否为写入IO处理成功场景以及写入IO处理失败场景,判断其是否为成功写入IO处理或写入IO处理失败;当成功写入IO处理后,只需检测其集合内的主节点以及主节点的纠删码节点是否存在IO数据存储故障即可,若无则可完成数据冗余处理;当写入IO处理失败后,通过检测其集合内的主节点以及主节点的纠删码节点中具体的故障节点,对故障节点进行恢复,恢复后完成数据冗余处理。
参照图4,示出了本发明的一种数据冗余处理方法实施例四的步骤流程图,所述当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理,具体可以包括如下步骤:
步骤S201421,若主节点内的IO数据写入成功,且主节点对应的纠删码节点的K+M份数据写入成功的数据份数≥K份,则成功写入IO处理;或者,
步骤S201422,若主节点内的IO数据写入失败,但主节点对应的纠删码节点内的K+M份数据数据都中K+M份写入成功,则成功写入IO处理。
在本发明实施例中,若主节点上的IO数据写入成功,而纠删码节点上的K+M份数据写入成功的数据分数大于等于K份,则成功写入IO处理;或者,若主节点上的IO数据写入失败,而纠删码节点上的K+M份数据中K+M份数据都写入成功,则成功写入IO处理;根据主节点以及主节点对应的纠删码节点内的IO数据,判断是否成功写入IO处理。
参照图5,示出了本发明的一种数据冗余处理方法实施例五的步骤流程图,所述当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败,具体可以包括如下步骤:
步骤S201431,若主节点内的IO数据写入失败,但主节点对应的纠删码节点内的K+M份数据中K+M份写入失败,则写入IO处理失败;或者,
步骤S201432,若主节点内的IO数据写入成功,且主节点对应的纠删码节点的K+M份数据写入的数据份数<K份,则写入IO处理失败。
在本发明实施例中,若主节点上的IO数据写入失败,但主节点对应的纠删码节点上的K+M份数据中K+M份写入失败的情况,则写入IO处理失败;若主节点上的IO数据写入成功,而主节点对应的纠删码节点上的K+M份数据写入成功的数据分数<K份,则写入IO处理失败;根据主节点以及主节点对应的纠删码节点内的IO数据,判断是否写入IO处理失败。
参照图6,示出了本发明的一种数据冗余处理方法实施例六的步骤流程图,所述读出IO处理的执行方法,具体可以包括如下步骤:
步骤S2021,在所述主节点内读出待读出的IO数据,所述待读出的IO数据为主节点内的原始数据;
步骤S2022,所述原始数据在客户端接收后完成读出IO数据请求处理。
在本发明实施例中,在主节点内读取IO数据,主节点直接将本地保存的整块原始数据读取出来,其要读取的IO数据为主节点内保存的整块原始数据,将整块原始数据并返回给前端客户端,前端客户端接收完成后,代表此次读出IO处理完成。
参照图7,示出了本发明的一种数据冗余处理方法实施例七的步骤流程图,所述检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障,具体可以包括如下步骤:
步骤S3011,检测所述集合内的主节点和与主节点对应的纠删码节点,识别故障位置;
步骤S3012,当主节点故障时,生成新的临时主节点,进行写入IO处理以及读出IO处理;
步骤S3013,当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数≤M时,在写入IO处理中纠删码节点无需写入IO数据以及读出IO处理;
步骤S3014,当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数>M时,则中断写入IO处理;
步骤S3015,当主节点和与主节点对应的纠删码节点同时故障,且故障的纠删码节点数据的份数≤M时,选取新的临时主节点,在写入IO处理中纠删码节点无需写入IO数据,在读出IO处理中将主节点内的原始数据读出。
在本发明实施例中,通过检测存储节点是否故障;通过检测主节点以及主节点对应的纠删码节点内是否存储有IO数据进行判断。
若是主节点故障,存储系统会选出新的临时主节点,进行写入IO处理以及读出IO处理。
若是与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数≤M,对于写入IO处理,故障的纠删码节点无需写入IO数据;对于读出IO处理,在所述主节点内将原始数据读出;将所述原始数据返回至客户端,客户端接收后完成读出IO数据处理。
若故障的纠删码节点数据的份数>M,存储系统读写业务中断,即中断写入IO请求;因为故障的纠删码节点数已经超过了纠删码所能容忍的最大值M。
若主节点和纠删码节点同时故障,且故障的纠删码节点数据的份数≤M,存储系统先选出新的临时主节点,在写入IO处理中纠删码节点无需写入IO数据,仅完成读出IO处理。
参照图8,示出了本发明的一种数据冗余处理方法实施例八的步骤流程图,所述故障节点恢复包括主节点故障恢复和纠删码节点故障恢复,所述若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理,具体可以包括如下步骤:
步骤S3021,当所述主节点故障时,通过与所述主节点对应的纠删码节点内读取IO数据进行所述主节点故障恢复;
步骤S3022,当所述纠删码节点故障时,且当前所述纠删码节点为缺失对象的纠删码节点,则在其他纠删码节点读取IO数据以进行所述纠删码节点故障恢复。
在本发明实施例中,通过检测是否存在故障节点,并对故障节点进行恢复,故障节点恢复包括主节点故障恢复和纠删码节点故障恢复;当主节点故障恢复时,其丢失的IO数据需要从纠删码节点读取恢复,读取纠删码节点上的数据或校验数据;当所述纠删码节点故障时,当前所述纠删码节点为缺失对象的纠删码节点,从其他纠删码节点读取数据或校验数据,根据纠删码恢复策略,所述纠删码恢复策略为纠删码会创建一个数学函数来描述一组数字,这样就可以检查它们的准确性,而且一旦其中一个数字丢失,还可以恢复;多项式插值(polynomial interpolation)或过采样(oversampling)就是纠删码所使用的关键技术,通过上述技术恢复数据即可;可实现当主节点上并没有保存完整的整块IO数据,或纠删码节点上的K+M份数据存在缺失,数据都会后台异步恢复。
在一实施例中,上述数据冗余处理方法还可以应用于区块链节点中,实现数据区块链存储,以提高数据的安全性。本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图9,示出了本发明的一种数据冗余处理装置某一实施例的结构框图,具体可以包括如下模块:
获取模块1001,用于获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;
接收模块1002,用于所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;
检测模块1003,用于检测所述集合内的主节点和与主节点对应的纠删码节点是否存在所述IO数据存储故障;
完成模块1004,用于若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理。
在一优选实施例中,所述接收模块1002,用于所述集合接收IO数据处理请求,其中所述IO数据处理请求包括写入IO处理和读出IO处理,其中所述写入IO处理,包括:
获取单元,用于获取主节点内的原始数据,其中,所述原始数据为在获取IO数据之前已经存储在主节点内的初始数据;
生成单元,用于将所述主节点内的原始数据分划分为K份主数据以及M份校验数据,并生成K+M份数据;将所述K+M份数据写入至所述主节点对应的纠删码节点内;
写入单元,用于当接收到所述IO数据处理请求时,将所述获取的IO数据同时写入至所述主节点的原始数据中以及所述纠删码节点的K+M份数据中;
响应信息单元,用于当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理。
在一优选实施例中,所述响应信息单元,用于当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理,包括:
识别单元,用于对所述响应信息进行场景识别;
写入IO处理成功场景单元,用于当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理;
写入IO处理失败场景单元,用于当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败。
在一优选实施例中,所述写入IO处理成功场景单元,用于当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理,包括:
第一完成单元,用于若主节点内的IO数据写入成功,且主节点对应的纠删码节点的K+M份数据写入成功的数据份数≥K份,则成功写入IO处理;或者,
第二完成单元,用于若主节点内的IO数据写入失败,但主节点对应的纠删码节点内的K+M份数据中K+M份数据都写入成功,则成功写入IO处理。
在一优选实施例中,所述写入IO处理失败场景单元,用于当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败,包括:
第一失败单元,用于若主节点内的IO数据写入失败,且主节点对应的纠删码节点内的K+M份数据中K+M份数据都写入失败,则写入IO处理失败;或者,
第二失败单元,用于主节点内的IO数据写入成功,但主节点对应的纠删码节点的K+M份数据写入的数据份数<K份,则写入IO处理失败。
在一优选实施例中,所述接收模块1002,用于所述集合接收IO数据处理请求,其中所述IO数据处理请求包括写入IO处理和读出IO处理,其中所述读出IO处理,包括:
读出单元,用于在所述主节点内读出待读出的IO数据,所述待读出的IO数据为主节点内的原始数据;
完成读出IO处理单元,用于所述原始数据在客户端接收后完成读出IO处理。
在一优选实施例中,所述检测模块1003,用于检测所述集合内的主节点和所述纠删码节点是否存在所述IO数据存储故障,包括:
故障单元,用于检测所述集合内的主节点和与主节点对应的纠删码节点,识别故障位置;
临时主节点单元,用于当主节点故障时,生成新的临时主节点,进行写入IO处理以及读出IO处理;
无需写入及读出单元,用于当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数≤M时,在写入IO处理中纠删码节点无需写入IO数据以及读出IO处理;
中断单元,用于当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数>M时,则中断写入IO处理;
读出单元,用于当主节点和与主节点对应的纠删码节点同时故障,且故障的纠删码节点数据的份数≤M时,选取新的临时主节点,在写入IO处理中纠删码节点无需写入IO数据,在读出IO处理中将主节点内的原始数据读出。
在一优选实施例中,所述完成模块1004,用于所述故障节点恢复包括主节点故障恢复和纠删码节点故障恢复,所述若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理,包括:
恢复单元,用于若存在故障则检测故障节点,并对故障节点恢复,其中所述故障节点恢复包括主节点故障恢复和纠删码节点故障;
主节点恢复单元,用于当所述主节点故障时,通过与所述主节点对应的纠删码节点内读取IO数据进行所述主节点故障恢复;
纠删码节点恢复单元,用于当所述纠删码节点故障时,且当前所述纠删码节点为缺失对象的纠删码节点,则在其他纠删码节点读取IO数据以进行所述纠删码节点故障恢复。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时,执行如本申请实施例中的一种混合数据冗余方法。
本发明实施例包括以下优点:获取IO数据映射在集合内,通过集合内的IO数据接收相应的IO数据处理请求,IO数据处理请求中包括写入IO数据以及读出IO数据的请求处理,并根据相应的IO数据处理请求进行写入IO处理以及读出IO处理;进行IO数据处理请求后生成响应信息,根据对响应信息进行场景识别,其中响应信息场景包括写入IO处理成功场景以及写入IO失败处理场景,根据成功和失败对写入IO数据请求处理进行判断;同时,对读出IO处理的判断;对集合内的主节点以及主节点对应的纠删码节点进行是否存在IO数据存储故障检测,根据检测结果判断是否完成写入IO处理以及读出IO处理,若不存在故障则完成写入IO处理以及读出IO处理,即完成数据冗余处理;若存在故障则进一步检测故障节点,并对故障节点进行恢复,待数据恢复后完成数据冗余处理;本申请通过检测在IO数据冗余处理中IO数据是否能够完成读写的请求,对在数据冗余处理中存在的IO数据丢失以及IO数据故障时,对IO数据进行恢复,使得整个IO数据冗余处理的完整性更优。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据冗余处理方法、装置及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种数据冗余处理方法,其特征在于,包括:
获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;
所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;
检测所述集合内的主节点和所述纠删码节点是否存在IO数据存储故障;检测所述集合内的主节点和与主节点对应的纠删码节点,识别故障位置;当主节点故障时,生成新的临时主节点,进行写入IO处理以及读出IO处理;当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数≤M时,在写入IO处理中纠删码节点无需写入IO数据以及读出IO处理;当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数>M时,则中断写入IO处理;当主节点和与主节点对应的纠删码节点同时故障,且故障的纠删码节点数据的份数≤M时,选取新的临时主节点,在写入IO处理中纠删码节点无需写入IO数据,在读出IO处理中将主节点内的原始数据读出;
若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理;当所述主节点故障时,通过与所述主节点对应的纠删码节点内读取IO数据进行所述主节点故障恢复,其丢失的IO数据需要从纠删码节点读取恢复,读取纠删码节点上的数据或校验数据;当所述纠删码节点故障时,且当前所述纠删码节点为缺失对象的纠删码节点,则在其他纠删码节点读取IO数据以进行所述纠删码节点故障恢复,当前所述纠删码节点为缺失对象的纠删码节点,从其他纠删码节点读取数据或校验数据。
2.根据权利要求1所述的方法,其特征在于,所述写入IO处理的执行方法包括:
获取主节点内的原始数据,其中,所述原始数据为在获取IO数据之前已经存储在主节点内的初始数据;
将所述主节点内的原始数据划分为K份主数据以及M份校验数据,并生成K+M份数据;将所述K+M份数据写入至所述纠删码节点内;
当接收到所述IO数据处理请求时,将所述获取的IO数据同时写入至所述主节点的原始数据中以及所述纠删码节点的K+M份数据中;
当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理。
3.根据权利要求2所述的方法,其特征在于,所述当所述纠删码节点写入完成时,向所述主节点发送写入完成的响应信息,根据所述响应信息完成所述写入IO处理,包括:
对所述响应信息进行场景识别;
当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理;
当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败。
4.根据权利要求3所述的方法,其特征在于,所述当识别出所述响应信息为写入IO处理成功场景时,则成功写入IO处理,包括:
若主节点内的IO数据写入成功,且主节点对应的纠删码节点的K+M份数据写入成功的数据份数≥K份,则成功写入IO处理;或者,
若主节点内的IO数据写入失败,但主节点对应的纠删码节点内的K+M份数据中K+M份数据都写入成功,则成功写入IO处理。
5.根据权利要求3所述的方法,其特征在于,所述当识别出所述响应信息为写入IO处理失败场景时,则写入IO处理失败,包括:
若主节点内的IO数据写入失败,且主节点对应的纠删码节点内的K+M份数据中K+M份数据都写入失败,则写入IO处理失败;或者,
若主节点内的IO数据写入成功,但主节点对应的纠删码节点的K+M份数据写入的数据份数<K份,则写入IO处理失败。
6.根据权利要求1所述的方法,其特征在于,所述读出IO处理的执行方法包括:
在所述主节点内读出待读出的IO数据,所述待读出的IO数据为主节点内的原始数据;
所述原始数据在客户端接收后完成读出IO处理。
7.一种数据冗余处理装置,其特征在于,包括:
获取模块,用于获取IO数据,将所述IO数据映射到集合内,所述集合包括主节点和与主节点对应的纠删码节点,所述IO数据分别映射存储到所述主节点以及所述主节点对应的纠删码节点;
接收模块,用于所述集合接收IO数据处理请求并在所述集合内执行IO数据处理,其中所述IO数据处理包括写入IO处理和读出IO处理;
检测模块,用于检测所述集合内的主节点和与主节点对应的纠删码节点是否存在IO数据存储故障;检测所述集合内的主节点和与主节点对应的纠删码节点,识别故障位置;当主节点故障时,生成新的临时主节点,进行写入IO处理以及读出IO处理;当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数≤M时,在写入IO处理中纠删码节点无需写入IO数据以及读出IO处理;当与主节点对应的纠删码节点故障,且故障的纠删码节点数据的份数>M时,则中断写入IO处理;当主节点和与主节点对应的纠删码节点同时故障,且故障的纠删码节点数据的份数≤M时,选取新的临时主节点,在写入IO处理中纠删码节点无需写入IO数据,在读出IO处理中将主节点内的原始数据读出;
完成模块,用于若存在IO数据存储故障,对所述IO数据存储故障进行排除后完成IO数据冗余处理;当所述主节点故障时,通过与所述主节点对应的纠删码节点内读取IO数据进行所述主节点故障恢复,其丢失的IO数据需要从纠删码节点读取恢复,读取纠删码节点上的数据或校验数据;当所述纠删码节点故障时,且当前所述纠删码节点为缺失对象的纠删码节点,则在其他纠删码节点读取IO数据以进行所述纠删码节点故障恢复,当前所述纠删码节点为缺失对象的纠删码节点,从其他纠删码节点读取数据或校验数据。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~6中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010456949.8A CN111625400B (zh) | 2020-05-26 | 2020-05-26 | 一种数据冗余处理方法、装置及存储介质 |
PCT/CN2020/118909 WO2021151298A1 (zh) | 2020-05-26 | 2020-09-29 | 一种数据冗余处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010456949.8A CN111625400B (zh) | 2020-05-26 | 2020-05-26 | 一种数据冗余处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625400A CN111625400A (zh) | 2020-09-04 |
CN111625400B true CN111625400B (zh) | 2024-01-16 |
Family
ID=72271156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010456949.8A Active CN111625400B (zh) | 2020-05-26 | 2020-05-26 | 一种数据冗余处理方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111625400B (zh) |
WO (1) | WO2021151298A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625400B (zh) * | 2020-05-26 | 2024-01-16 | 平安科技(深圳)有限公司 | 一种数据冗余处理方法、装置及存储介质 |
CN112597654A (zh) * | 2020-12-24 | 2021-04-02 | 中国人民解放军国防科技大学 | 基于mbse的顶层系统设计方案验证、优化和评估方法 |
CN113360890A (zh) * | 2021-06-10 | 2021-09-07 | 重庆科创职业学院 | 基于计算机的安全认证方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095013A (zh) * | 2015-06-04 | 2015-11-25 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
CN107977167A (zh) * | 2017-12-01 | 2018-05-01 | 西安交通大学 | 一种基于纠删码的分布式存储系统的退化读优化方法 |
WO2019137323A1 (zh) * | 2018-01-09 | 2019-07-18 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3208714B1 (en) * | 2015-12-31 | 2019-08-21 | Huawei Technologies Co., Ltd. | Data reconstruction method, apparatus and system in distributed storage system |
CN109889440B (zh) * | 2019-02-20 | 2021-02-02 | 哈尔滨工程大学 | 一种基于最大生成树的纠删码失效节点重构路径选择方法 |
CN110212923B (zh) * | 2019-05-08 | 2020-11-17 | 西安交通大学 | 一种基于模拟退火的分布式纠删码存储系统数据修复方法 |
CN111625400B (zh) * | 2020-05-26 | 2024-01-16 | 平安科技(深圳)有限公司 | 一种数据冗余处理方法、装置及存储介质 |
-
2020
- 2020-05-26 CN CN202010456949.8A patent/CN111625400B/zh active Active
- 2020-09-29 WO PCT/CN2020/118909 patent/WO2021151298A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095013A (zh) * | 2015-06-04 | 2015-11-25 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
CN107977167A (zh) * | 2017-12-01 | 2018-05-01 | 西安交通大学 | 一种基于纠删码的分布式存储系统的退化读优化方法 |
WO2019137323A1 (zh) * | 2018-01-09 | 2019-07-18 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021151298A1 (zh) | 2021-08-05 |
CN111625400A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625400B (zh) | 一种数据冗余处理方法、装置及存储介质 | |
US11614867B2 (en) | Distributed storage system-based data processing method and storage device | |
WO2018000812A1 (zh) | 数据存储方法及装置 | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
US20110082841A1 (en) | Analyzing Backup Objects Maintained by a De-Duplication Storage System | |
CN1784677A (zh) | 用于数据库备份的一致性检验的系统和方法 | |
US9489254B1 (en) | Verification of erasure encoded fragments | |
US7849355B2 (en) | Distributed object sharing system and method thereof | |
CN113743950A (zh) | 在区块链中执行交易的方法、区块链节点和区块链 | |
US8762336B2 (en) | Geo-verification and repair | |
US10691353B1 (en) | Checking of data difference for writes performed via a bus interface to a dual-server storage controller | |
CN117234791B (zh) | 存储芯片的数据丢失检测方法及装置 | |
CN108958973B (zh) | 分布式文件系统纠删码数据重构存储节点选择方法及装置 | |
US20200233674A1 (en) | Automatically configuring boot order in recovery operations | |
US9552254B1 (en) | Verification of erasure encoded fragments | |
CN114138192A (zh) | 存储节点在线升级方法、装置、系统及存储介质 | |
CN105892954A (zh) | 基于多副本的数据存储方法和装置 | |
CN111625396B (zh) | 备份数据的校验方法、服务器及存储介质 | |
CN113312205A (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN106227617A (zh) | 自修复方法和基于纠删码算法的存储系统 | |
CN112799872B (zh) | 一种基于键值对存储系统的纠删码编码方法及装置 | |
KR20230056408A (ko) | 블록체인을 이용하여 대용량 데이터를 저장하는 분산 저장 시스템 및 방법 | |
US11372555B2 (en) | Reconstructing data in a smart storage array | |
Sutaria et al. | Fault Prediction and Mitigation in Cloud Computing. | |
CN111190765B (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 |