CN103354923B - 一种数据重建方法、装置和*** - Google Patents
一种数据重建方法、装置和*** Download PDFInfo
- Publication number
- CN103354923B CN103354923B CN201280000110.7A CN201280000110A CN103354923B CN 103354923 B CN103354923 B CN 103354923B CN 201280000110 A CN201280000110 A CN 201280000110A CN 103354923 B CN103354923 B CN 103354923B
- Authority
- CN
- China
- Prior art keywords
- data
- memory node
- data migration
- task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013508 migration Methods 0.000 claims abstract description 477
- 230000005012 migration Effects 0.000 claims abstract description 477
- 238000013507 mapping Methods 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims description 23
- 230000010354 integration Effects 0.000 claims description 11
- 108020005210 Integrons Proteins 0.000 claims description 4
- 238000005192 partition Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000002459 sustained effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation 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
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- 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/1464—Management of the backup or restore process for networked environments
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- 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/0706—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 the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据重建方法,包括:获取数据迁移列表,所述数据迁移列表指示该需要数据迁移的存储节点上需要数据迁移的分区;根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;并发执行集群中存储节点的数据迁移任务,以进行数据重建。此外,还相应地提供一种数据重建设备和存储***。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种数据重建方法、装置和***。
背景技术
随着网络技术的发展,网络信息也随之进入信息***时代,基于人们对大规模的数据存储的需求,基于分布式散列表(DHT,DistributedHashTable)技术的点对点(P2P,Peer-to-Peer)存储***应运而生。
一个典型的P2P存储***一般可以简化为以下两种部件组成:若干个客户端和若干个存储节点。其中,存储节点用于存放数据,客户端则用于访问数据。这种存储***的数据访问形式一般如下:get(key,&value),其中,key为数据的唯一标识,value即为数据内容。
随着存储***的长时间运行,磁盘发生故障是存储***的基本场景,如何针对此场景快速地恢复数据,以提高存储***的可靠性是P2P存储***的主要实现难点。在现有技术中,当集群中的部分存储节点发生故障时,需要人工通过P2P存储***针对故障的存储节点制定相应的数据迁移任务(也称为负载均衡任务,即rebalanceTask),然后根据数据迁移任务将发生故障的存储节点进行分区迁移。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于现有技术需要人工通过P2P存储***针对故障的存储节点制定相应的数据迁移任务,然后再依次执行这些数据迁移任务,所以数据迁移需要花费的时间比较长。
发明内容
本发明实施例提供一种数据重建方法、装置和***,可以提高数据重建的效率。
一种数据重建方法,包括:
获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区;
根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;
并发执行所述集群中存储节点的数据迁移任务,以进行数据重建。
一种数据重建设备,包括:
获取单元,用于获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区;
生成单元,用于根据路由表信息和获取单元获取到的数据迁移列表生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;
执行单元,用于并发执行所述集群中存储节点的数据迁移任务,以进行数据重建。
一种存储***,包括本发明实施例提供的任一种数据重建设备。
本发明实施例采用获取数据迁移列表,根据数据迁移列表和路由表信息生成数据迁移任务,然后并发执行集群中存储节点的数据迁移任务,以进行数据重建,由于可以并发地执行数据迁移任务,所以可以提高数据重建的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是DHT算法及分区和存储节点的映射关系的示意图;
图1b是本发明实施例提供的数据重建方法的流程图;
图2a是存储***中各存储节点和分区的原始映射关系示意图;
图2b是本发明实施例提供的数据重建方法的另一流程图;
图2c是经过第一次分区调整后所得到的各存储节点和分区的映射关系示意图;
图2d是经过第二次分区调整后所得到的各存储节点和分区的映射关系示意图;
图3是本发明实施例提供的数据重建设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于描述,以下将对P2P存储***中所涉及到的几个概念进行简略说明。如下:
(1)全条带化块存储:指的是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中不同磁盘上的方法。它比单个磁盘所能提供的读写速度要快的多,当数据从第一个磁盘上传输完后,第二个磁盘就能确定下一段数据。
(2)DHT算法:存储***通常采用基于DHT为网络模型。即提供对于任何一个存储节点(即物理上的节点)在网络中的位置映射。一个存储节点映射成多个虚拟节点,实际对外提供服务是以基于DHT环虚拟出的逻辑卷(VOL,Volume.hthhh)来承担的。逻辑卷中的数据存储时被分为很多大小相等的小块(如1M)来哈希(Hash)映射到环上的不同分区(Partitions)中。所有的数据都可以通过一致性Hash函数和分区建立映射关系。
(3)Hash值:客户端的请求数据“key-value”,和虚拟节点之间有一个对应关系。哪些key-value放到哪些节点上是有一个映射规则的,这个映射规则是建立在对key进行hash,计算出一个Hash值,然后将Hash值与虚拟节点的总数取模,即建立了key和虚拟节点编号的映射,采用此种Hash值的计算方式,会使得上层应用请求的key值均匀的分布到整个集群中,只要每个物理节点上的partition数量分布均衡,则这些物理节点承担的数据量也会比较均衡。
(4)存储节点,虚拟节点,分区:如图1a所示:其中物理节点(physicalnode)对应了物理服务器硬盘,通常每个硬盘对应一个物理节点,称为存储节点。虚拟节点(virtualnode)A到T,是与物理节点区别而言的。每个分区(Partition)区域的数据,会对应着一个虚拟节点进行存储,从这个意义上讲,分区和虚拟节点是一对一的关系,分区代表了key进行hash后的区域,虚拟节点代表了存储这个区域的节点。***的Hash空间从0~2^32-1(其中,2^32-1指的是2的“32-1=31”次方),这个整数空间等分成N个分区,比如图1a,该图等分为20个分区,从P0~P19;其中,每个分区包含的hash值范围相等。
每个Key经过Hash计算后,Hash值会映射到该Hash空间的某个分区上,而每个分区中的数据则存储在对应的虚拟节点上。比如,keyk1经过Hash计算后,Hash值整数被映射到了P0区域,而映射到P0的key-value数据,则存储在A节点上。
(5)负载均衡任务(RT,RebalanceTask):集群中部分节点发生故障时,会将发生故障节点的分区迁移,从而制定的一系列节点之间的分区迁移计划,称为负载均衡任务,在本发明实施例中称为数据迁移任务。
本发明实施例提供一种数据重建方法、装置和***。以下分别进行详细说明。
实施例一、
本实施例将从数据重建设备的角度进行描述,该数据重建设备具体可以为存储***中的客户端,也可以是其他的控制装置等设备。
一种数据重建方法,包括:获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区,根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系,并发执行该集群中存储节点的数据迁移任务,以进行数据重建。
其中,集群中至少包括两个存储节点。
如图1b所示,具体流程可以如下:
101、获取数据迁移列表,其中,数据迁移列表指示需要数据迁移的存储节点(node)上需要数据迁移的分区,即根据该迁移列表可以确定需要数据迁移的存储节点(node),以及确定该需要数据迁移的存储节点上需要数据迁移的分区;例如,具体可以如下:
(1)获取集群中存储节点的状态信息。
其中,存储节点的状态信息又称为同步心跳信息,如果在一定的时间窗内没有该存储节点的状态信息,则可认为该存储节点处于临时故障状态;如果持续故障时间达到了***设定的时间,比如X小时,则认为该存储节点处于永久故障状态,则此时需要将该存储节点的分区(partition)迁移到其他正常的存储节点上,即执行步骤(2)。
(2)根据获取到的存储节点的状态信息对分区进行调整;例如,具体可以如下:
若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障存储节点;将故障存储节点上的分区迁移到其他正常的存储节点上。
由于故障存储节点上的分区已经迁移到其他正常的存储节点上,所以,此时,故障存储节点上的分区当前所属的存储节点(即接受了分区迁移的这些“其他正常的存储节点”)需要对这些分区的数据进行迁移,以便对这些分区的数据进行恢复,也就是说,故障存储节点上的分区当前所属的存储节点(即接受了分区迁移的这些“其他正常的存储节点”)即为本发明实施例所说的“需要数据迁移的存储节点”。
(3)根据分区的调整情况更新路由表信息,其中,该路由表信息指示存储节点和分区的映射关系,此外,该路由表信息还可以指示每个存储节点的状态信息。
(4)根据更新后的路由表信息(即新的路由表信息)和更新前的路由表信息(即旧的路由表信息)确定数据迁移列表。
其中,数据迁移列表指示需要数据迁移的存储节点,即指示哪些存储节点上的哪个分区需要进行数据迁移。这些需要数据迁移的存储节点可以是一个,也可以是多个。
102、根据数据迁移列表和路由表信息生成数据迁移任务,其中,该路由表信息指示集群中存储节点和分区的映射关系;例如,具体可以如下:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储节点;通过查找路由表信息确定该当前需要数据迁移的存储节点上的分区的备份数据所在的存储节点;从该备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储节点;根据确定的偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
需说明的是,为了描述方便,在本发明实施例中,将接收迁移数据的存储节点称为偷数据的存储节点,将迁移出数据的存储节点称为贡献数据的存储节点,比如,如果存储节点A上包括分区P1,存储节点B保存有分区P1的备份数据,当存储节点A发生故障后,分区P1调整到存储节点C上,则可以从存储节点B上迁移分区P1的数据到存储节点C的分区P1上,则此时,将存储节点C称为偷数据的存储节点,将存储节点B称为贡献数据的存储节点。
103、并发执行集群中存储节点的数据迁移任务,以进行数据重建;
其中,并发指的是并行执行集群中存储节点的数据迁移任务,包括存储节点之间的数据迁移任务的并发执行,以及存储节点内部的数据迁移任务的并发执行。比如,以存储节点A、存储节点B和存储节点C为例,若存储节点A所涉及到的数据迁移任务为任务1,存储节点B所涉及到的数据迁移任务为任务2,存储节点C所涉及到的数据迁移任务为任务3,其中,任务1、任务2和任务3中均分别包括了多个小任务(即本发明实施例中的“总迁移任务队列中的任务”,具体可参见实施例二),则这里的并行,不仅指任务1、任务2和任务3之间的并行处理,也包括任务1、任务2和任务3中各个小任务之间的并行处理。
其中,所述并发执行集群中存储节点的数据迁移任务,以进行数据重建,具体可以如下:
根据数据迁移任务从贡献数据的存储节点上将备份数据复制到该当前需要偷数据的存储节点上。
此外,可选的,如果在进行数据重建的过程中,又有新的存储节点发生故障,则此时需要获取新的数据迁移列表,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务,然后再并发执行整合后的数据迁移任务,以进行数据重建。即此时,步骤102(即根据数据迁移列表和路由表信息生成数据迁移任务)具体可以为:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务;例如,具体可以如下:
(1)确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息确定新的需要数据迁移的存储节点,并生成新的数据迁移任务;
其中,生成新的数据迁移任务和步骤102相同,在此不再赘述。
(2)确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数据的存储节点和/或贡献数据的存储节点,然后根据确定的结果分别进行如下处理:
若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中关于该“新的需要数据迁移的存储节点”的数据迁移任务,保留关于该“新的需要数据迁移的存储节点”的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的“新的需要数据迁移的存储节点”,保留关于该“新的需要数据迁移的存储节点”的新的数据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点,则删除原数据迁移任务中以该“新的需要数据迁移的存储节点”作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需要到该“新的需要数据迁移的存储节点”上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的该“新的需要数据迁移的存储节点”;保留关于该“新的需要数据迁移的存储节点”的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储节点,则保留关于该“新的需要进行数据迁移的存储节点”的新的数据迁移任务。
则,步骤103(即并发执行集群中存储节点的数据迁移任务,以进行数据重建)具体可以为:并发执行集群中存储节点的整合后的数据迁移任务,以进行数据重建。
需说明的是,该整合后的数据迁移任务与普通的数据迁移任务一样,所以,并发执行该整合后的数据迁移任务的具体方法可以参见步骤103,在此不再赘述。
由上可知,本实施例采用获取数据迁移列表,根据数据迁移列表和路由表信息生成数据迁移任务,然后并发执行集群中存储节点的数据迁移任务,以进行数据重建,由于可以并发地执行数据迁移任务,所以可以提高数据重建的效率。
现有技术中由于维护人员需要通过P2P存储***针对故障的存储节点制定相应的数据迁移任务,所以,如果制定了某一个数据迁移任务之后,又有存储节点发生故障,则需要再次通过P2P存储***制定一份新的数据迁移任务,此时就可能会发生数据迁移任务的重复,延长了数据迁移的时间,从而导致数据重建效率的降低。通过本发明实施例在确定有新的数据迁移列表时,还可以根据新的数据迁移列表对数据迁移任务进行整合,删除相同的数据迁移任务,所以,可以避免数据迁移任务的重复,大大减少了数据迁移的时间,进一步提高了数据重建的效率。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
存储***通过冗余备份的方式,创建数据文件的多个副本,这些副本称为数据备份,这样,在存储***发生故障时,就可以通过这些数据备份来恢复数据。以下将以存储节点集群中含有12个存储节点(即12块磁盘),且每个分区(即partition)具有3份数据备份为例进行说明。
参见图2a,在该存储***的存储节点集群中,包括了12个存储节点:N1~N12,其中,每个存储节点上包括有若干个分区,每个分区含3份备份数据。例如,其中,原始的路由表信息(即存储节点和分区的映射关系)具体可以如下:
N1(1,7’,8”,9,15’,16”,17,23’,24”);
N2(2,8’,1”,10,16’,9”,18,24’,17”);
N3(3,1’,2”,11,9’,10”,33,36’,35”);
N4(4,2’,3”,12,10’,11”,34,33’,36”);
N5(5,3’,4”,13,11’,12”,31,30’,29”);
N6(6,4’,5”,14,12’,13”,32,31’,30”);
N7(7,5’,6”,15,13’,14”,23,21’,22”);
N8(8,6’,7”,16,14’,15”,24,22’,23”);
N9(25,28’,27”,29,32’,31”,19,17’,18”);
N10(26,25’,28”,30,29’,32”,20,18’,19”);
N11(27,26’,25”,21,19’,20”,35,34’,33”);
N12(28,27’,26”,22,20’,21”,36,35’,34”)。
其中,括号中的数字分别对应着图2a中的分区“P”,(p,p’,p”)表示一个分区的三个不同的数据备份,比如,(1,1’,1”)即对应着图2a中的分区“P1”,表示P1的三个数据备份。由上述的存储节点和分区的映射关系可知,分区“P1”的三个数据备份分别存放在存储节点N1、N2和N3上。
如图2a所示,若连续四块磁盘如存储节点N1、N6、N7和N12发生故障(在图2a中用虚线表示),则如图2b所示,该存储***的数据重建流程具体可以如下:
201、存储***中的客户端获取集群中存储节点的状态信息。
需说明的是,客户端保存了整个集群的路由表信息,这个路由表信息包含了存储节点和分区的映射关系,以及每个存储节点的状态信息。
202、客户端根据获取到的存储节点的状态信息对分区进行调整,即根据获取到的存储节点的状态信息改变存储节点和分区的映射关系。例如,具体可以如下:
由于***会定期地由客户端获取集群中存储节点的状态信息,所以,如果在一定的时间窗内没有该存储节点的状态信息,则可认为该存储节点处于临时故障状态;如果持续故障时间达到了***设定的时间,比如X小时,则认为该存储节点处于永久故障状态,即确定该存储节点为故障存储节点。
如果一个存储节点为故障存储节点,则可以认为该存储节点上的所有分区中的数据都发生故障,于是此时需要将该故障存储节点上的分区迁移到其他正常的存储节点上。
具体可采取任意的方式对分区进行调整,例如,具体可以将该故障存储节点上的分区全部迁移到某个正常的存储节点上,也可以将该故障存储节点上的分区全部迁移到某几个正常的存储节点上,等等。当然,为了保证分区分布较为均衡,可以尽可能将故障存储节点上的分区平均地分布到各个正常的存储节点上,使得每个正常的存储节点上分区数据基本相等。比如,本实施例采取的具体方法是根据故障存储节点需要迁出的分区数目和每个正常节点需要迁入多少个分区才能保证集群中每个节点的分区数基本相同(平均的分区数=所有分区数/正常节点的个数)的原则进行调整,调整时按照节点的和分区的编号来进行遍历,调整的最终结果是其他正常的存储节点上新增了部分分区。
参见图2c,该图为存储节点N1、N6、N7和N12发生故障后,经过分区调整所得到的各存储节点和分区的映射关系示意图(即第一次分区调整后所得到的各存储节点和分区的映射关系示意图)。其中,存储节点中的用虚线标识的分区表示该存储节点新增的分区,由图2c中可以看出,存储节点N1、N6、N7和N12的分区由于全部迁移到其他正常的存储节点上去,所以它们的分区列表为空。分区调整后各个存储节点和分区的映射关系具体可以如下:
N1();
N2(2,8’,1”,10,16’,9”,18,24’,17”,32,23’,30”,5’);
N3(3,1’,2”,11,9’,10”,33,36’,35”,17,7’,8”,12’);
N4(4,2’,3”,12,10’,11”,34,33’,36”,1,15’,24”,31’,23);
N5(5,3’,4”,13,11’,12”,31,30’,29”,9,21’,16”,7);
N6();
N7();
N8(8,6’,7”,16,14’,15”,24,22’,23”,22,20’,13’,21”);
N9(25,28’,27”,29,32’,31”,19,17’,18”,14,13’,26”,22”, 36);
N10(26,25’,28”,30,29’,32”,20,18’,19”,6,27’,34”,6”, 15);
N11(27,26’,25”,21,19’,20”,35,34’,33”,28,4’,5”,14”, 35’);
N12()。
其中,下划线部分为各个存储节点新增的分区。
203、客户端根据步骤202中分区的调整情况更新路由表信息,并同步到整个集群中,然后根据更新后的路由表信息和更新前的路由表信息确定数据迁移列表。
其中,该路由表信息指示存储节点和分区的映射关系,还可以指示每个存储节点的状态信息。数据迁移列表指示需要数据迁移的存储节点上需要进行数据迁移的分区,即指示哪些存储节点上的哪个分区进行数据迁移。这些需要数据迁移的存储节点可以是一个,也可以是多个。例如,由步骤,202中分区的调整情况可知,存储节点N2、N3、N4、N5、N8、N9、N10和N11上均增加了新的分区,因此,存储节点N2、N3、N4、N5、N8、N9、N10和N11均需要进行数据迁移,则,存储节点N2、N3、N4、N5、N8、N9、N10和N11上需要进行数据迁移的分区列表即为数据迁移列表。
204、根据数据迁移列表和路由表信息生成数据迁移任务,并从具有相应数据备份的正常存储节点上迁移数据。
根据图2c所示的分区调整后各个存储节点和分区的映射关系,以及图2a所示的原始的存储节点和分区的映射关系可知,集群中每个分区的数据备份在另外两个存储节点上,所以可从这两个存储节点中的任意一个上获取数据备份来恢复数据。例如,具体可以如下:
首先,具体可以根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储节点,比如,以图2c为例,数据迁移列表中指示需要数据迁移的存储节点包括:N2、N3、N4、N5、N8、N9、N10和N11,则此时,可以先确定N2为当前需要数据迁移的存储节点,待N2上的数据迁移完毕后,再确定N3为当前需要数据迁移的存储节点,以进行数据迁移,依次类推,直至迁移列表中所有的“需要数据迁移的存储节点”的数据均迁移完毕为止。
其次,可以通过查找路由表信息确定该当前需要数据迁移的存储节点上的分区的备份数据所在的存储节点,从该备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储节点;比如,存储节点N2需要进行数据迁移的分区为:P32、P23、P30和P5;由路由表信息(路由表信息中存储了各个存储节点和分区的映射关系)可查出,P32的数据备份存储在存储节点N9和N10上,于是,此时可根据预置策略从存储节点N9和N10中选择出可作为贡献数据的存储节点,比如,选择N9作为贡献数据的存储节点。其中,预置策略可根据实际应用的需求进行设置。
在确定了偷数据的存储节点和贡献数据的存储节点之后,即可根据确定的偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
例如,具体可以将数据迁移任务分成三个级别的任务:总迁移任务队列(RebalancingTaskQueue)、总迁移任务队列中的任务(rebalanceTaskn)和两个存储节点之间的任务;如下:
(1)总迁移任务队列;
总迁移任务队列中可以包括n个任务,比如,rebalanceTask1、rebalanceTask2和rebalanceTask3,等等。其中,n表示每一次有磁盘发生故障时为集群制定的数据迁移任务。
(2)总迁移任务队列中的任务
存储***根据集群的故障存储节点的个数制定的任务,与故障存储节点相对应,一般一个故障存储节点对应一个任务,这些任务生成后,放进总迁移任务队列中,以待执行。比如,可以将第一次故障后生成的数据迁移任务称为rebalanceTask1,将第二次故障后生成的数据迁移任务称为rebalanceTask2,以此类推,等等。
(3)两个存储节点之间的任务
每个总迁移任务队列中的任务中可以包括至少一个“两个存储节点之间的任务”,所谓两个存储节点之间的任务,指的是具体到两个存储节点之间的数据迁移任务,这两个存储节点,一个为偷数据的存储节点,一个为贡献数据的存储节点,具体可以用于X<---Ypartitions[k]来表示,其中,X为偷数据的存储节点,Y为贡献数据的存储节点,partitions[k]表示Y节点上的分区k。比如,2<---9partitions[32]表示节点2从节点9上偷分区32的数据。
例如,根据步骤202中存储节点N2、N3、N4和N5所新增的几个分区,可以制定出如下“两个存储节点之间的任务”:
2<---9partitions[32];
3<---9partitions[17];
4<---3partitions[1];
5<---2partitions[16];
2<---10partitions[30];
3<---8partitions[7,8];
4<---8partitions[15,23,24];
5<---3partitions[9];
2<---5partitions[5];
3<---5partitions[12];
4<---9partitions[31];
5<---8partitions[7];
2<---8partitions[23];
5<---11partitions[21];
......,等等。
以存储节点N2为例,Partition32原本是存储节点6上的分区,由于存储节点6发生故障,所以数据只能从保存有它的数据备份的存储节点N9或N10上迁移,所以制定任务时,显示的是最终迁移数据的分区所在的存储节点,比如,上述任务中显示的为存储节点N9。此外,需说明的是,一个存储节点可以从另一个存储节点中偷多个数据备份,比如4<---8partitions[15,23,24]表示存储节点N4从存储节点N8上偷三个分区:partition15(即P15)、partition23(即P23)和partition24(即P24)的数据。
205、并发执行总迁移任务队列中的数据迁移任务,以进行数据重建;例如,具体可以如下:
首先,确定当前需要偷数据的存储节点,其次,确定属于当前需要偷数据的存储节点的数据迁移任务,然后,执行属于当前需要偷数据的存储节点的数据迁移任务,以进行数据重建。
例如,在本实施例的例子中,偷数据的存储节点一共有8个,分别是N2,N3,N4,N5,N8,N9,N10和N11,比如,对于存储节点N2来说,它共有四个数据迁移任务:2<---9partitions[32]、2<---8partitions[23]、2<---10partitions[30]和2<---5partitions[5]。因此,如果确定存储节点N2为当前需要偷数据的存储节点,则将属于存储节点N2的这四个数据迁移任务并发执行,其他存储节点的确定方法与此相同,在此不再赘述。
此外,除了上述所说的存储节点内部的数据迁移任务需要并发执行之外,各个存储节点之间也可以并发执行,即并行处理N2,N3,N4,N5,N8,N9,N10和N11。
206、确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务,将整合后的数据迁移任务加入到总迁移任务队列,并发执行总迁移任务队列中的任务,即返回执行步骤205;具体可以如下:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息(包括更新后的路由表信息和更新前的路由表信息)确定新的需要数据迁移的存储节点,并生成新的数据迁移任务,然后确定该新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数据的存储节点和/或贡献数据的存储节点,根据确定的结果分别进行如下处理:
(1)若仅为原数据迁移任务中的偷数据的存储节点,则此时将会涉及到两类任务,第一类是该存储节点自身的数据需要恢复,第二类是该存储节点上还没偷完的数据需要移到其他存储节点上来偷,故此时可进行如下操作来对数据迁移任务进行整合:
删除原数据迁移任务中关于该“新的需要数据迁移的存储节点”的数据迁移任务,保留关于该“新的需要数据迁移的存储节点”的新的数据迁移任务;
(2)若仅为原数据迁移任务中的贡献数据的存储节点,则此时将会涉及到两类任务,第一类是该存储节点自身的数据需要恢复,第二类是原本从该存储节点上偷数据的存储节点需要移到其他存储节点上去偷数据,故此时可进行如下操作来对数据迁移任务进行整合:
为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的“新的需要数据迁移的存储节点”,保留关于该“新的需要数据迁移的存储节点”的新的数据迁移任务;
(3)若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点,则此时将会涉及到三类任务,第一类是该存储节点自身的数据需要恢复,第二类是该存储节点上还没偷完的数据需要移到其他存储节点上来偷,第三类是原本从该存储节点上偷数据的存储节点需要移到其他存储节点上去偷数据,故此时可进行如下操作来对数据迁移任务进行整合:
删除原数据迁移任务中以该“新的需要数据迁移的存储节点”作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需要到该“新的需要数据迁移的存储节点”上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的该“新的需要数据迁移的存储节点”;保留关于该“新的需要数据迁移的存储节点”的新的数据迁移任务;
(4)若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储节点,则此时将只涉及到一类任务,即对该存储节点自身的数据进行恢复,故此时可进行如下操作来对数据迁移任务进行整合:
保留关于该“新的需要进行数据迁移的存储节点”的新的数据迁移任务。
例如,当步骤205中的单个任务rebalanceTask1还没有执行完时,集群中又有新的存储节点发生故障,则会触发一个新的任务rebalanceTask2。以下以存储节点N2发生故障为例进行说明。
如图2d所示,该图为存储节点N2发生故障后,经过分区调整所得到的各存储节点和分区的映射关系示意图(即第二次分区调整后所得到的各存储节点和分区的映射关系示意图),反映出存储节点N2发生故障后,存储节点N2上的分区迁移到其他正常存储节点上后,各个存储节点上分区的变化。
由图2d中可以看出,存储节点N2的分区由于全部迁移到其他正常的存储节点上去,所以它的分区列表为空。分区调整后各个存储节点和分区的映射关系具体可以如下:
N1();
N2();
N3(3,1’,2”,11,9’,10”,33,36’,35”,17,7’,8”,12’,32, 30”);
N4(4,2’,3”,12,10’,11”,34,33’,36”,1,15’,24”,31’,23,1”,8’);
N5(5,3’,4”,13,11’,12”,31,30’,29”,9,21’,16”,7,2,24’);
N6();
N7();
N8(8,6’,7”,16,14’,15”,24,22’,23”,22,20’,13’,21”,18, 9”);
N9(25,28’,27”,29,32’,31”,19,17’,18”,14,13’,26”,22”,36,16”);
N10(26,25’,28”,30,29’,32”,20,18’,19”,6,27’,34”,6”,15,5’,17”);
N11(27,26’,25”,21,19’,20”,35,34’,33”,28,4’,5”,14”,35’,10,23’);
N12()。
其中,下划线部分为存储节点N2故障后,各个存储节点又新增的分区(即第二次分区调整后的所增加的分区),需说明的是,粗体字体但没有下划线的数字表示第一次分区调整后的增加的分区,详见步骤202。
由于发生故障的存储节点N2既是偷数据的存储节点,又是贡献数据的存储节点,而且,由于在其发生故障后,N2上的任务都需要发生变化,所以此时将会涉及到三类任务:第一类是N2上自身的数据需要恢复,第二类是N2上还没有偷完的数据需要转移到其他存储节点来偷,第三类是原本从存储节点2上偷数据的存储节点需要转移到其他存储节点上偷数据。
对于第一类任务来说,可根据第一次分区调整结果来恢复存储节点N2自身的数据。根据第一次调整分区后得到的存储节点和分区的对应关系可知,存储节点N2自身的数据包括9个分区,即需要恢复partition[2,8’,1”,10,16’,9”,18,24’,17”]的数据,此处可得到的数据迁移任务为:
4<---3partitions[1];
4<---8partitions[8];
5<---4partitions[2];
5<---8partitions[24];
8<---3partitions[9];
8<---10partitions[18];
9<---8partitions[16];
10<---9partitions[17];
11<---3partitions[10]。
对于第二类任务来说,可根据第二次分区调整结果来恢复存储节点N2中需要偷数据的分区中的数据,也即是原数据迁移任务(即rebalanceTask1)中需要迁移的数据。根据第一次调整分区后得到的存储节点和分区的对应关系可知,存储节点N2上需要偷数据的分区有四个,即需要恢复partition[32,23’,30”,5’]的数据。此时可对应存储节点N2发生故障后分区的变化情况,直接将rebalanceTask1中的任务取消,变成rebalanceTask2中的第二类任务,这样既不会造成数据迁移任务的失败,数据也没有丢失。即此处可得到的数据迁移任务为:
3<---9partitions[32];
11<---10partitions[30];
3<---8partitions[23];
10<---8partitions[5]。
对于第三类来说,原本从存储节点N2上偷数据的存储节点需要转移到其他存储节点上偷数据,比如,rebalanceTask1中的任务5<---2partitions[16]需要将存储节点N2更改为正常的存储节点N8,即变成5<---8partitions[16]。
将这三类任务的重新组合,即组成了整合后的数据迁移任务,即rebalanceTask2,如下:
4<---8partitions[8];
5<---4partitions[2];
5<---8partitions[24];
8<---3partitions[9];
8<---10partitions[18];
9<---8partitions[16];
10<---9partitions[17];
11<---3partitions[10];
3<---9partitions[32];
11<---10partitions[30];
3<---8partitions[23];
10<---8partitions[5];
5<---8partitions[16]。
将rebalanceTask2中的任务,直接加入到总迁移任务队列,并发执行总迁移任务队列中的任务,即返回执行步骤205。
需说明的是,虽然存储节点和分区的映射关系发生了变化,但由于客户端在写入或读取数据时只需确定分区的所在位置,并不关心分区是属于哪个存储节点,所以,在存储节点故障后,并发执行数据迁移任务时,读写流程并不会受影响。以下将对此作简略说明。
(一)写入流程(Put流程)
以存储节点D为例,存储节点D故障后,迁移它的分区到新的存储节点C上的整个写入流程具体可以如下:
步骤A1、客户端请求写入(key=abc,value=111)的数据,对该key后进行哈希运算(Hash)后,得到Hash值为6,由于原始的分区总数是16个,所以,根据Hash值对分区总数“16”取模后,可得到数值6,于是可以确定需要将数据写入分区P6,从而可以建立起key和分区的映射关系。以此类推,其他key值也可如此建立起和分区的映射关系,在此不再赘述。
在确定需要将数据写入分区P6之后,通过查找路由表信息后发现,分区P6在存储节点D上,所以请求的(key=abc,value=111)的数据可写入存储节点D。
步骤A2、若存储节点D发生故障,无法进行通信,则此时会制定的数据迁移任务,将存储节点D上的分区迁移到其他正常的存储节点上,并更新路由表信息,比如,将分区P6迁移到存储节点C上,并更新路由表信息。
步骤A3、客户端获取到更新后的路由表信息,确定分区P6在存储节点C上,于是将数据写入到存储节点C上。
可见,虽然存储节点和分区的映射关系发生了变化,且需要执行数据迁移任务以进行数据重建,但对于客户端请求写入(key=abc,value=111)的数据,仍然可以成功地写入到存储节点C上,并不受影响。
(二)读取流程(即Get流程)
还是以存储节点D为例,存储节点D故障后,迁移它的分区到新的存储节点C上的整个读取流程具体可以如下:
步骤B1、客户端请求读取(key=abc,value=111)的数据,对该key进行哈希运算(Hash)后,得到Hash值为6,由于原始的分区总数是16个,所以,根据Hash值对分区总数“16”取模后,可得到数值6,于是可以确定可以从分区P6上读取到相应的数据,从而可以建立起key和分区的映射关系。以此类推,其他key值也可如此建立起和分区的映射关系,在此不再赘述。
在确定可以从分区P6上读取到数据之后,通过查找路由表信息后发现分区P6在存储节点D上,所以请求的(key=abc,value=111)的数据可在存储节点D上得到。
步骤B2、若存储节点D发生故障,无法进行通信,则此时会制定的数据迁移任务,将存储节点D上的分区迁移到其他正常的存储节点上,并更新路由表信息,比如,将分区P6迁移到存储节点C上,并更新路由表信息。
其中,分区P6的数据备份存储在存储节点B上,因此,存储节点C需要从存储节点B上偷数据。
步骤B3、客户端获取到更新后的路由表信息,确定分区P6在存储节点C上,于是从存储节点C上读取到需要的数据,而存储节点C上分区P6的数据需要从存储节点B上迁移过来(即从存储节点B上偷数据)。此时,在读取的时候,可能存储节点C还正在进行数据迁移,存储节点B上的数据还尚未全部迁移到存储节点C上,所以,可能从存储节点C上读取不到分区P6上的数据,但此时可以将该读取请求重定向到存储节点B上,使得客户端仍然可以正确访问到相应的数据。
可见,虽然存储节点和分区的映射关系发生了变化,且需要执行数据迁移任务以进行数据重建,但对于客户端请求读取(key=abc,value=111)的数据,仍然可以成功地读取到,并不受影响。
由上可知,本发明实施例通过并发的执行数据迁移任务,提升了数据的恢复速度,从而提高数据重建的效率。而且,在确定有新的数据迁移列表时,还可以根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,将相同的迁移任务取消,从而避免数据迁移任务的重复,在保证数据迁移任务不会因为存储节点的故障而执行失败的同时,大大减少了数据迁移的时间,进一步提高了数据重建的效率。进一步的,在进行该数据重建的过程中,还不会影响到读写请求操作,保证了存储***的可靠性。
实施例三、
为了更好地实施以上方法,本发明实施例还相应地提供一种数据重建设备,可以作为存储***的客户端,如图3所示,该数据重建设备包括获取单元301、生成单元302和执行单元303;
获取单元301,用于获取数据迁移列表,其中,数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区;
生成单元302,用于根据路由表信息和获取单元301获取到的数据迁移列表生成数据迁移任务,其中,路由表信息指示集群中存储节点和分区的映射关系;
执行单元303,用于并发执行集群中存储节点的数据迁移任务,以进行数据重建。
此外,可选的,如果在进行数据重建的过程中,又有新的存储节点发生故障,则此时需要获取新的数据迁移列表,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务,然后再并发执行整合后的数据迁移任务,以进行数据重建。即:
所述生成单元302,还用于确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务;
则所述执行单元,用于并发执行集群中存储节点的整合后的数据迁移任务,以进行数据重建;例如,具体可以根据数据迁移任务从贡献数据的存储节点上将备份数据复制到该当前需要偷数据的存储节点上,参见前面的方法实施例,在此不再赘述。
其中,获取单元301可以包括获取子单元、调整子单元、更新子单元和确定子单元;
获取子单元,用于获取集群中存储节点的状态信息;
其中,存储节点的状态信息又称为同步心跳信息,如果在一定的时间窗内没有该存储节点的状态信息,则可认为该存储节点处于临时故障状态;如果持续故障时间达到了***设定的时间,比如X小时,则认为该存储节点处于永久故障状态
调整子单元,用于根据获取子单元获取到的存储节点的状态信息对分区进行调整;
更新子单元,用于根据分区的调整情况更新路由表信息,其中,该路由表信息指示集群中存储节点和分区的映射关系,此外,该路由表还可以指示每个存储节点的状态信息;
确定子单元,用于根据更新子单元更新后的路由表信息和更新前的路由表信息确定数据迁移列表。
其中,调整子单元,具体用于在预设的时间内未收到存储节点的状态信息时,确定该存储节点为故障存储节点,将故障存储节点上的分区迁移到其他正常的存储节点上,则此时,该“其他正常的存储节点”则称为需要数据迁移的存储节点。
其中,生成单元302具体可以包括处理子单元和生成子单元;
处理子单元,用于根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储节点;通过查找路由表信息确定该当前需要数据迁移的存储节点上的分区的备份数据所在的存储节点;从该备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储节点;
生成子单元,用于根据所述处理子单元确定的偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
此外,生成单元302可以包括生成子单元和整合子单元;
生成子单元,用于确定有新的数据迁移列表时,根据新的数据迁移列表确定新的需要数据迁移的存储节点,并生成新的数据迁移任务;
整合子单元,用于确定该新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数据的存储节点和/或贡献数据的存储节点,然后进行如下操作:
若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点,则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储节点,则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任务。
需说明的是,虽然存储节点和分区的映射关系发生了变化,但由于客户端在写入或读取数据时只需确定分区的所在位置,并不关心分区是属于哪个存储节点,所以,在存储节点故障后,执行单元303在并发执行数据迁移任务时,读写流程并不会受影响,具体可参见实施例二中的说明,在此不再赘述。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的数据重建设备的获取单元301可以获取数据迁移列表,然后由生成单元302根据数据迁移列表和路由表信息生成数据迁移任务,再由执行单元303并发执行集群中存储节点的数据迁移任务,以进行数据重建,由于可以并发地执行数据迁移任务,所以可以提高数据重建的效率,而且,在确定有新的数据迁移列表时,还可以由整合子单元根据新的数据迁移列表对数据迁移任务进行整合,以删除相同的数据迁移任务,所以,可以避免数据迁移任务的重复,大大减少了数据迁移的时间,提高了数据重建的效率。进一步的,在进行该数据重建的过程中,还不会影响到读写请求操作,保证了存储***的可靠性。
实施例四、
相应的,本发明实施例还提供一种存储***,可以包括本发明实施例提供的任一种数据重建设备,其中,该数据重建设备的说明具体可参见实施例三,在此不再赘述。例如,具体可以如下:
数据重建设备,用于获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区;根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;并发执行集群中存储节点的数据迁移任务,以进行数据重建。比如,具体可以根据该数据迁移任务从贡献数据的存储节点上将备份数据复制到该当前需要偷数据的存储节点上,具体可参见前面的方法实施例,在此不再赘述。
可选的,如果在进行数据重建的过程中,又有新的存储节点发生故障,则此时需要获取新的数据迁移列表,据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务,然后再并发执行集群中存储节点的整合后的数据迁移任务,以进行数据重建。即:
数据重建设备,还用于确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务;并发执行集群中存储节点的整合后的数据迁移任务,以进行数据重建。
其中,获取数据迁移列表具体可以包括:
获取集群中存储节点的状态信息;根据存储节点的状态信息对分区进行调整;根据分区的调整情况更新路由表信息,其中,该路由表信息指示存储节点和分区的映射关系;根据更新后的路由表信息和更新前的路由表信息确定数据迁移列表。其中,该路由表还可以指示每个存储节点的状态信息。
其中,根据存储节点的状态信息对分区进行调整具体可以如下:
若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障存储节点;将故障存储节点上的分区迁移到其他正常的存储节点上。
其中,根据数据迁移列表生成数据迁移任务具体可以如下:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储节点;通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的备份数据所在的存储节点;从该备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储节点;根据所述偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
此外,该存储***还可以包括一个或多个存储节点;
存储节点,用于存储数据,以及接受数据重建设备的分区调整和数据迁移。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的数据重建设备可以获取数据迁移列表,然后根据数据迁移列表和路由表信息生成数据迁移任务,再并发地执行数据迁移任务,以进行数据重建,由于可以并发地执行集群中存储节点的数据迁移任务,所以可以提高数据重建的效率,而且,在确定有新的数据迁移列表时,还可以根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,以删除相同的数据迁移任务,所以,可以避免数据迁移任务的重复,大大减少了数据迁移的时间,提高了数据重建的效率。进一步的,在进行该数据重建的过程中,还不会影响到读写请求操作,保证了存储***的可靠性。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本发明实施例所提供的一种数据重建方法、装置和***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种数据重建方法,其特征在于,包括:
获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区;
根据所述数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;
并发执行所述集群中存储节点的数据迁移任务,以进行数据重建;
其中,所述根据所述数据迁移列表和路由表信息生成数据迁移任务,包括:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务;
则所述并发执行所述集群中存储节点的数据迁移任务,以进行数据重建包括:并发执行所述集群中存储节点的整合后的数据迁移任务,以进行数据重建;
其中,所述确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务,包括:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息确定新的需要数据迁移的存储节点,并生成新的数据迁移任务;
确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数据的存储节点和/或贡献数据的存储节点;
若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点,则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储节点,则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任务。
2.根据权利要求1所述的方法,其特征在于,所述获取数据迁移列表,包括:
获取集群中存储节点的状态信息;
根据存储节点的状态信息对分区进行调整;
根据分区的调整情况更新所述路由表信息;
根据更新后的路由表信息和更新前的路由表信息确定所述数据迁移列表。
3.根据权利要求2所述的方法,其特征在于,所述获取集群中存储节点的状态信息,根据存储节点的状态信息对分区进行调整,包括:
若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障存储节点;
将故障存储节点上的分区迁移到其他正常的存储节点上。
4.根据权利要求2至3任一项所述的方法,其特征在于,所述根据数据迁移列表和路由表信息生成数据迁移任务,包括:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储节点;
通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的备份数据所在的存储节点;
从所述备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储节点;
根据所述偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
5.根据权利要求4所述的方法,其特征在于,所述并发执行所述集群中存储节点的数据迁移任务,以进行数据重建,包括:
根据所述数据迁移任务从贡献数据的存储节点上将备份数据复制到所述当前需要偷数据的存储节点上。
6.一种数据重建设备,其特征在于,包括:
获取单元,用于获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需要数据迁移的分区;
生成单元,用于根据路由表信息和获取单元获取到的数据迁移列表生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;
执行单元,用于并发执行所述集群中存储节点的数据迁移任务,以进行数据重建;
其中,所述生成单元,还用于确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务;
则所述执行单元,用于并发执行集群中存储节点的整合后的数据迁移任务,以进行数据重建;
其中,所述生成单元包括:
生成子单元,用于确定有新的数据迁移列表时,根据新的数据迁移列表确定新的需要数据迁移的存储节点,并生成新的数据迁移任务;
整合子单元,用于确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数据的存储节点和/或贡献数据的存储节点;若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点,则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留关于所述新的需要数据迁移的存储节点的新的数据迁移任务;若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储节点,则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任务。
7.根据权利要求6所述的数据重建设备,其特征在于,所述获取单元包括:
获取子单元,用于获取集群中存储节点的状态信息;
调整子单元,用于根据获取子单元获取到的存储节点的状态信息对分区进行调整;
更新子单元,用于根据分区的调整情况更新所述路由表信息;
确定子单元,用于根据更新子单元更新后的路由表信息和更新前的路由表信息确定数据迁移列表。
8.根据权利要求7所述的数据重建设备,其特征在于,
所述调整子单元,具体用于在预设的时间内未收到存储节点的状态信息时,确定该存储节点为故障存储节点,将故障存储节点上的分区迁移到其他正常的存储节点上。
9.根据权利要求6至8中任一项所述的数据重建设备,其特征在于,所述生成单元包括:
处理子单元,用于根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储节点;通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的备份数据所在的存储节点;从所述备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储节点;
生成子单元,用于根据所述处理子单元确定的偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
10.根据权利要求9所述的数据重建设备,其特征在于,
所述执行单元,具体用于根据所述数据迁移任务从贡献数据的存储节点上将备份数据复制到所述当前需要偷数据的存储节点上。
11.一种存储***,其特征在于,包括权利要求6至10所述的任一种数据重建设备。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/070983 WO2013117002A1 (zh) | 2012-02-09 | 2012-02-09 | 一种数据重建方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103354923A CN103354923A (zh) | 2013-10-16 |
CN103354923B true CN103354923B (zh) | 2016-03-09 |
Family
ID=48946897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280000110.7A Active CN103354923B (zh) | 2012-02-09 | 2012-02-09 | 一种数据重建方法、装置和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US9904599B2 (zh) |
EP (1) | EP2784675B1 (zh) |
CN (1) | CN103354923B (zh) |
WO (1) | WO2013117002A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8751533B1 (en) * | 2009-11-25 | 2014-06-10 | Netapp, Inc. | Method and system for transparently migrating storage objects between nodes in a clustered storage system |
JP6213130B2 (ja) * | 2013-10-09 | 2017-10-18 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 |
US10271997B2 (en) | 2014-04-08 | 2019-04-30 | The Procter & Gamble Company | Absorbent articles having substrates having zonal treatments |
CN105227602A (zh) * | 2014-06-20 | 2016-01-06 | 北京新媒传信科技有限公司 | 一种负载均衡的方法、客户端、注册服务器和*** |
CN107357522B (zh) * | 2014-11-05 | 2019-11-15 | 华为技术有限公司 | 数据处理方法和装置 |
CN106062717B (zh) * | 2014-11-06 | 2019-05-03 | 华为技术有限公司 | 一种分布式存储复制***和方法 |
CN104580432A (zh) * | 2014-12-23 | 2015-04-29 | 上海帝联信息科技股份有限公司 | memcached***及内存缓存数据提供、维护和集群维护方法及装置 |
US10187310B2 (en) * | 2015-10-13 | 2019-01-22 | Oracle International Corporation | System and method for efficient network isolation and load balancing in a multi-tenant cluster environment |
CN105447112B (zh) * | 2015-11-12 | 2019-02-01 | 国云科技股份有限公司 | 一种实现关系数据库Hash分区高效扩展的方法 |
CN106817307B (zh) * | 2015-11-27 | 2020-09-22 | 佛山市顺德区顺达电脑厂有限公司 | 用于丛集式储存***的建立路由的方法 |
CN105786405B (zh) * | 2016-02-25 | 2018-11-13 | 华为技术有限公司 | 一种在线升级方法、装置及*** |
US10198461B2 (en) * | 2016-05-06 | 2019-02-05 | Masergy Communications, Inc. | Data storage system |
US10356158B2 (en) | 2016-05-16 | 2019-07-16 | Carbonite, Inc. | Systems and methods for aggregation of cloud storage |
US10116629B2 (en) | 2016-05-16 | 2018-10-30 | Carbonite, Inc. | Systems and methods for obfuscation of data via an aggregation of cloud storage services |
US10264072B2 (en) * | 2016-05-16 | 2019-04-16 | Carbonite, Inc. | Systems and methods for processing-based file distribution in an aggregation of cloud storage services |
US10404798B2 (en) | 2016-05-16 | 2019-09-03 | Carbonite, Inc. | Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services |
US11100107B2 (en) | 2016-05-16 | 2021-08-24 | Carbonite, Inc. | Systems and methods for secure file management via an aggregation of cloud storage services |
CN106599308B (zh) * | 2016-12-29 | 2020-01-31 | 郭晓凤 | 一种分布式元数据管理方法及*** |
CN106973091B (zh) * | 2017-03-23 | 2020-06-05 | 中国工商银行股份有限公司 | 分布式内存数据重分布方法及***、主控服务器 |
US10936453B2 (en) * | 2017-09-19 | 2021-03-02 | Seagate Technology Llc | Data storage systems using elastic spares |
US10740156B1 (en) * | 2018-02-22 | 2020-08-11 | Amazon Technologies, Inc. | Reversible representation-based partitioning of distributed computing environments |
US10452296B1 (en) | 2018-03-23 | 2019-10-22 | Amazon Technologies, Inc. | Accelerated volumes |
US11343314B1 (en) | 2018-04-30 | 2022-05-24 | Amazon Technologies, Inc. | Stream-based logging for distributed storage systems |
US11023157B2 (en) * | 2018-04-30 | 2021-06-01 | Amazon Technologies, Inc. | Intermediary duplication to facilitate copy requests in distributed storage systems |
EP3788466A1 (en) * | 2018-04-30 | 2021-03-10 | Amazon Technologies Inc. | Distributed replica for block storage systems |
US10459655B1 (en) * | 2018-04-30 | 2019-10-29 | Amazon Technologies, Inc. | Rapid volume backup generation from distributed replica |
US10768850B2 (en) | 2018-04-30 | 2020-09-08 | Amazon Technologies, Inc. | Distributed replica for block storage systems |
US10956442B1 (en) | 2018-07-30 | 2021-03-23 | Amazon Technologies, Inc. | Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots |
US10931750B1 (en) | 2018-07-30 | 2021-02-23 | Amazon Technologies, Inc. | Selection from dedicated source volume pool for accelerated creation of block data volumes |
CN110866606B (zh) * | 2018-08-28 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 数据信息、点餐语音指令的处理方法及装置 |
US10713138B2 (en) | 2018-11-08 | 2020-07-14 | International Business Machines Corporation | Failure detection for central electronics complex group management |
CN109901953B (zh) * | 2019-02-14 | 2022-07-08 | 新华三技术有限公司成都分公司 | 数据重构方法及装置 |
US11068192B1 (en) | 2019-03-26 | 2021-07-20 | Amazon Technologies, Inc. | Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source |
US10983719B1 (en) | 2019-03-28 | 2021-04-20 | Amazon Technologies, Inc. | Replica pools to support volume replication in distributed storage systems |
CN111857543A (zh) * | 2019-04-26 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于数据迁移的方法、设备和计算机程序产品 |
CN110162517A (zh) * | 2019-05-30 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 数据迁移方法、装置、设备及计算机可读存储介质 |
US11256671B2 (en) * | 2019-09-13 | 2022-02-22 | Oracle International Corporation | Integrated transition control center |
CN111400241B (zh) * | 2019-11-14 | 2024-04-05 | 杭州海康威视***技术有限公司 | 数据重构方法和装置 |
CN115113798B (zh) * | 2021-03-17 | 2024-03-19 | ***通信集团山东有限公司 | 一种应用于分布式存储的数据迁移方法、***及设备 |
US11526286B1 (en) | 2021-06-29 | 2022-12-13 | Amazon Technologies, Inc. | Adaptive snapshot chunk sizing for snapshots of block storage volumes |
CN113515364B (zh) * | 2021-09-14 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法及装置、计算机设备和存储介质 |
US11842063B2 (en) | 2022-03-25 | 2023-12-12 | Ebay Inc. | Data placement and recovery in the event of partition failures |
CN116860527A (zh) * | 2023-07-10 | 2023-10-10 | 江苏博云科技股份有限公司 | 在Kubernetes环境下使用本地存储的容器的迁移方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1679000A (zh) * | 2002-06-24 | 2005-10-05 | 网络装置公司 | 在raid数据重建和转移中使用文件***信息 |
CN101154146A (zh) * | 2006-09-29 | 2008-04-02 | 株式会社日立制作所 | 数据迁移方法以及信息处理*** |
CN102033794A (zh) * | 2011-01-10 | 2011-04-27 | 中国电子科技集团公司第五十二研究所 | 一种flash固态盘数据冗余保护方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685129B1 (en) * | 2004-06-18 | 2010-03-23 | Emc Corporation | Dynamic data set migration |
US7702850B2 (en) * | 2005-03-14 | 2010-04-20 | Thomas Earl Ludwig | Topology independent storage arrays and methods |
US8504521B2 (en) * | 2005-07-28 | 2013-08-06 | Gopivotal, Inc. | Distributed data management system |
US7702947B2 (en) * | 2005-11-29 | 2010-04-20 | Bea Systems, Inc. | System and method for enabling site failover in an application server environment |
US8140695B2 (en) * | 2005-12-12 | 2012-03-20 | International Business Machines Corporation | Load balancing and failover of distributed media resources in a media server |
JP4923990B2 (ja) * | 2006-12-04 | 2012-04-25 | 株式会社日立製作所 | フェイルオーバ方法、およびその計算機システム。 |
EP2122966B1 (en) | 2007-02-22 | 2010-10-20 | Telefonaktiebolaget LM Ericsson (publ) | Consistent and fault tolerant distributed hash table (dht) overlay network |
US8296398B2 (en) * | 2008-04-29 | 2012-10-23 | Overland Storage, Inc. | Peer-to-peer redundant file server system and methods |
CN101436149B (zh) * | 2008-12-19 | 2010-06-30 | 华中科技大学 | 磁盘阵列数据重建方法 |
US8055933B2 (en) * | 2009-07-21 | 2011-11-08 | International Business Machines Corporation | Dynamic updating of failover policies for increased application availability |
CN102033804A (zh) * | 2009-09-29 | 2011-04-27 | 国际商业机器公司 | 辅助内存分析的方法和*** |
US8290919B1 (en) * | 2010-08-27 | 2012-10-16 | Disney Enterprises, Inc. | System and method for distributing and accessing files in a distributed storage system |
-
2012
- 2012-02-09 CN CN201280000110.7A patent/CN103354923B/zh active Active
- 2012-02-09 EP EP12867962.8A patent/EP2784675B1/en active Active
- 2012-02-09 WO PCT/CN2012/070983 patent/WO2013117002A1/zh active Application Filing
-
2014
- 2014-08-11 US US14/456,690 patent/US9904599B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1679000A (zh) * | 2002-06-24 | 2005-10-05 | 网络装置公司 | 在raid数据重建和转移中使用文件***信息 |
CN101154146A (zh) * | 2006-09-29 | 2008-04-02 | 株式会社日立制作所 | 数据迁移方法以及信息处理*** |
CN102033794A (zh) * | 2011-01-10 | 2011-04-27 | 中国电子科技集团公司第五十二研究所 | 一种flash固态盘数据冗余保护方法 |
Non-Patent Citations (1)
Title |
---|
Effect of Replica Placement on the Reliability of Large-Scale Data Storage Systems;Vinodh Venkatesan et.;《MODELING,ANALYSIS&SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS),2010 IEEE INTERNATIONAL SYMPOSIUM ON,IEEE,PISCATAWAY,NJ,USA》;20100817;79-88 * |
Also Published As
Publication number | Publication date |
---|---|
US9904599B2 (en) | 2018-02-27 |
US20140351636A1 (en) | 2014-11-27 |
EP2784675B1 (en) | 2016-12-28 |
WO2013117002A1 (zh) | 2013-08-15 |
CN103354923A (zh) | 2013-10-16 |
EP2784675A4 (en) | 2014-11-26 |
EP2784675A1 (en) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103354923B (zh) | 一种数据重建方法、装置和*** | |
US10552064B2 (en) | Enabling data integrity checking and faster application recovery in synchronous replicated datasets | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
US8010485B1 (en) | Background movement of data between nodes in a storage cluster | |
US8930648B1 (en) | Distributed deduplication using global chunk data structure and epochs | |
US20170109247A1 (en) | Method and apparatus for managing data recovery of distributed storage system | |
JP5944001B2 (ja) | ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法 | |
US10031682B1 (en) | Methods for improved data store migrations and devices thereof | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
US20070033370A1 (en) | Continuous data protection | |
WO2014205847A1 (zh) | 一种分区平衡子任务下发方法、装置与*** | |
US9830237B2 (en) | Resynchronization with compliance data preservation | |
TWI617924B (zh) | 記憶體資料分版技術 | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储*** | |
US20150269042A1 (en) | Survival site load balancing | |
CN113448502B (zh) | 分布式存储***和存储控制方法 | |
US11188258B2 (en) | Distributed storage system | |
US10592453B2 (en) | Moving from back-to-back topology to switched topology in an InfiniBand network | |
CN115955488B (zh) | 基于副本冗余的分布式存储副本跨机房放置方法与装置 | |
US20160036653A1 (en) | Method and apparatus for avoiding performance decrease in high availability configuration | |
JP4893214B2 (ja) | 記憶制御装置、記憶制御方法および記憶制御プログラム | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
US10635542B1 (en) | Support for prompt creation of target-less snapshots on a target logical device that has been linked to a target-less snapshot of a source logical device | |
CN111400098A (zh) | 一种副本管理方法、装置、电子设备及存储介质 | |
JP6279780B1 (ja) | 分散ストレージの非同期リモートレプリケーションシステムおよび分散ストレージの非同期リモートレプリケーション方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211223 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |