CN103354923A - 一种数据重建方法、装置和系统 - Google Patents

一种数据重建方法、装置和系统 Download PDF

Info

Publication number
CN103354923A
CN103354923A CN2012800001107A CN201280000110A CN103354923A CN 103354923 A CN103354923 A CN 103354923A CN 2012800001107 A CN2012800001107 A CN 2012800001107A CN 201280000110 A CN201280000110 A CN 201280000110A CN 103354923 A CN103354923 A CN 103354923A
Authority
CN
China
Prior art keywords
data
memory node
data migration
new
task
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.)
Granted
Application number
CN2012800001107A
Other languages
English (en)
Other versions
CN103354923B (zh
Inventor
印雨
王道辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103354923A publication Critical patent/CN103354923A/zh
Application granted granted Critical
Publication of CN103354923B publication Critical patent/CN103354923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0727Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error 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, Distributed Hash Table ) 技术的点对点 (P2P, Peer-to-Peer) 存储系统应运而生。
一个典型的 P2P存储系统一般可以筒化为以下两种部件组成: 若干个客户 端和若干个存储节点。其中,存储节点用于存放数据,客户端则用于访问数据。 这种存储系统的数据访问形式一般如下: get ( key, &value ), 其中, key为数 据的唯一标识, value即为数据内容。
随着存储系统的长时间运行,磁盘发生故障是存储系统的基本场景,如何 针对此场景快速地恢复数据, 以提高存储系统的可靠性是 P2P存储系统的主要 实现难点。 在现有技术中, 当集群中的部分存储节点发生故障时, 需要人工通 过 P2P存储系统针对故障的存储节点制定相应的数据迁移任务(也称为负载均 衡任务, 即 rebalance Task ) , 然后根据数据迁移任务将发生故障的存储节点进 行分区迁移。
在对现有技术的研究和实践过程中, 本发明的发明人发现, 由于现有技术 需要人工通过 P2P存储系统针对故障的存储节点制定相应的数据迁移任务, 然 后再依次执行这些数据迁移任务, 所以数据迁移需要花费的时间比较长。
发明内容
本发明实施例提供一种数据重建方法、装置和系统, 可以提高数据重建的 效率。
一种数据重建方法, 包括:
获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需 要数据迁移的分区;
根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示 集群中存储节点和分区的映射关系;
并发执行所述集群中存储节点的数据迁移任务, 以进行数据重建。 一种数据重建设备, 包括:
获取单元, 用于获取数据迁移列表, 所述数据迁移列表指示需要数据迁移 的存储节点上需要数据迁移的分区;
生成单元,用于根据路由表信息和获取单元获取到的数据迁移列表生成数 据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关系;
执行单元, 用于并发执行所述集群中存储节点的数据迁移任务, 以进行数 据重建。
一种存储系统, 包括本发明实施例提供的任一种数据重建设备。
本发明实施例采用获取数据迁移列表,根据数据迁移列表和路由表信息生 成数据迁移任务, 然后并发执行集群中存储节点的数据迁移任务, 以进行数据 重建, 由于可以并发地执行数据迁移任务, 所以可以提高数据重建的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创 造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1 a是 DHT算法及分区和存储节点的映射关系的示意图;
图 lb是本发明实施例提供的数据重建方法的流程图;
图 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 )存储节点, 虚拟节点, 分区: 如图 la所示: 其中物理节点(physical node )对应了物理服务器硬盘, 通常每个硬盘对应一个物理节点, 称为存储节 点。 虚拟节点 (virtual node ) A到 T, 是与物理节点区别而言的。 每个分区
( Partition )区域的数据, 会对应着一个虚拟节点进行存储, 从这个意义上讲, 分区和虚拟节点是一对一的关系, 分区代表了 key进行 hash后的区域, 虚拟 节点代表了存储这个区域的节点。 系统的 Hash空间从 0~2Λ32-1 (其中, 2Λ32-1 指的是 2的 "32-1=31" 次方), 这个整数空间等分成 Ν个分区, 比如图 la, 该图等分为 20个分区, 从 P0~P19; 其中, 每个分区包含的 hash值范围相等。
每个 Key经过 Hash计算后, Hash值会映射到该 Hash空间的某个分区上, 而每个分区中的数据则存储在对应的虚拟节点上。 比如, key kl经过 Hash计 算后, Hash值整数被映射到了 P0区域, 而映射到 P0的 key- value数据, 则存 储在 A节点上。
( 5 ) 负载均衡任务(RT, RebalanceTask ): 集群中部分节点发生故障时, 会将发生故障节点的分区迁移, 从而制定的一系列节点之间的分区迁移计划, 称为负载均衡任务, 在本发明实施例中称为数据迁移任务。
本发明实施例提供一种数据重建方法、装置和系统。 以下分别进行详细说 明。
实施例一、
本实施例将从数据重建设备的角度进行描述,该数据重建设备具体可以为 存储系统中的客户端, 也可以是其他的控制装置等设备。
一种数据重建方法, 包括: 获取数据迁移列表, 所述数据迁移列表指示需 要数据迁移的存储节点上需要数据迁移的分区,根据数据迁移列表和路由表信 息生成数据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关 系, 并发执行该集群中存储节点的数据迁移任务, 以进行数据重建。
其中, 集群中至少包括两个存储节点。
如图 lb所示, 具体流程可以如下:
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 )确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的 偷数据的存储节点和 /或贡献数据的存储节点, 然后根据确定的结果分别进行 如下处理:
若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中 关于该 "新的需要数据迁移的存储节点" 的数据迁移任务, 保留关于该 "新的 需要数据迁移的存储节点" 的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中 需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的 贡献数据的节点, 以新的贡献数据的节点替换原数据迁移任务中的 "新的需要 数据迁移的存储节点", 保留关于该 "新的需要数据迁移的存储节点" 的新的 数据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点, 则删除原数据迁移任务中以该 "新的需要数据迁移的存储节点"作为偷数据的 存储节点的数据迁移任务; 为原数据迁移任务中需要到该 "新的需要数据迁移 的存储节点"上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的贡 献数据的节点替换原数据迁移任务中的该 "新的需要数据迁移的存储节点 "; 保留关于该 "新的需要数据迁移的存储节点" 的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储 节点, 则保留关于该 "新的需要进行数据迁移的存储节点" 的新的数据迁移任 务。
贝' J , 步骤 103 (即并发执行集群中存储节点的数据迁移任务, 以进行数据 重建)具体可以为: 并发执行集群中存储节点的整合后的数据迁移任务, 以进 行数据重建。
需说明的是,该整合后的数据迁移任务与普通的数据迁移任务一样,所以, 并发执行该整合后的数据迁移任务的具体方法可以参见步骤 103 , 在此不再赘 述。
由上可知, 本实施例采用获取数据迁移列表,根据数据迁移列表和路由表 信息生成数据迁移任务, 然后并发执行集群中存储节点的数据迁移任务, 以进 行数据重建, 由于可以并发地执行数据迁移任务, 所以可以提高数据重建的效 率。
现有技术中由于维护人员需要通过 P2P存储系统针对故障的存储节点制 定相应的数据迁移任务, 所以, 如果制定了某一个数据迁移任务之后, 又有存 储节点发生故障, 则需要再次通过 P2P存储系统制定一份新的数据迁移任务, 此时就可能会发生数据迁移任务的重复,延长了数据迁移的时间,从而导致数 据重建效率的降低。通过本发明实施例在确定有新的数据迁移列表时,还可以 根据新的数据迁移列表对数据迁移任务进行整合, 删除相同的数据迁移任务, 所以, 可以避免数据迁移任务的重复, 大大减少了数据迁移的时间, 进一步提 高了数据重建的效率。 实施例二、
根据实施例一所描述的方法, 以下将举例作进一步详细说明。
存储系统通过冗余备份的方式,创建数据文件的多个副本, 这些副本称为 数据备份, 这样, 在存储系统发生故障时, 就可以通过这些数据备份来恢复数 据。 以下将以存储节点集群中含有 12个存储节点 (即 12块磁盘), 且每个分 区 (即 partition )具有 3份数据备份为例进行说明。
参见图 2a,在该存储系统的存储节点集群中,包括了 12个存储节点: Nl~ 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" );
誦 (26, 25,, 28", 30, 29,, 32", 20, 18,, 19" );
Nil (27, 26,, 25", 21, 19,, 20", 35, 34,, 33" );
N12 (28, 27,, 26", 22, 20,, 21", 36, 35', 34" )。
其中, 括号中的数字分别对应着图 2a中的分区 "P" , (p, ρ', ρ" )表 示一个分区的三个不同的数据备份, 比如, (1, V, 1") 即对应着图 2a中 的分区 "ΡΓ , 表示 P1的三个数据备份。 由上述的存储节点和分区的映射关 系可知, 分区 "ΡΓ 的三个数据备份分别存放在存储节点 Nl、 N2和 N3上。 如图 2a所示, 若连续四块磁盘如存储节点 Nl、 N6、 N7和 N12发生故障 (在图 2a中用虚线表示), 则如图 2b所示, 该存储系统的数据重建流程具体 可以: ¾口下:
201、 存储系统中的客户端获取集群中存储节点的状态信息。
需说明的是,客户端保存了整个集群的路由表信息, 这个路由表信息包含 了存储节点和分区的映射关系, 以及每个存储节点的状态信息。
202、 客户端根据获取到的存储节点的状态信息对分区进行调整, 即根据 获取到的存储节点的状态信息改变存储节点和分区的映射关系。例如, 具体可 以: ¾口下:
由于系统会定期地由客户端获取集群中存储节点的状态信息, 所以,如果 在一定的时间窗内没有该存储节点的状态信息,则可认为该存储节点处于临时 故障状态; 如果持续故障时间达到了系统设定的时间, 比如 X小时, 则认为 该存储节点处于永久故障状态, 即确定该存储节点为故障存储节点。
如果一个存储节点为故障存储节点,则可以认为该存储节点上的所有分区 中的数据都发生故障,于是此时需要将该故障存储节点上的分区迁移到其他正 常的存储节点上。
具体可采取任意的方式对分区进行调整, 例如, 具体可以将该故障存储节 点上的分区全部迁移到某个正常的存储节点上,也可以将该故障存储节点上的 分区全部迁移到某几个正常的存储节点上, 等等。 当然, 为了保证分区分布较 为均衡,可以尽可能将故障存储节点上的分区平均地分布到各个正常的存储节 点上, 使得每个正常的存储节点上分区数据基本相等。 比如, 本实施例采取的 具体方法是根据故障存储节点需要迁出的分区数目和每个正常节点需要迁入 多少个分区才能保证集群中每个节点的分区数基本相同 (平均的分区数=所有 分区数 /正常节点的个数) 的原则进行调整, 调整时按照节点的和分区的编号 来进行遍历, 调整的最终结果是其他正常的存储节点上新增了部分分区。
参见图 2c, 该图为存储节点 Nl、 N6、 N7和 N12发生故障后, 经过分区 调整所得到的各存储节点和分区的映射关系示意图(即第一次分区调整后所得 到的各存储节点和分区的映射关系示意图)。 其中, 存储节点中的用虚线标识 的分区表示该存储节点新增的分区, 由图 2c中可以看出, 存储节点 Nl、 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,, 2V ', );
N9 (25, 28,, 27", 29, 32', 31", 19, 17,, 18", 14, 13', 26", 22",
36);
誦 (26, 25,, 28", 30, 29,, 32" , 20, 18, , 19", 6, 27,, 34", 6",
15);
Nil (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和 Nil上均增加了 新的分区, 因此, 存储节点 N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil均需要 进行数据迁移, 则, 存储节点 N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil上需 要进行数据迁移的分区列表即为数据迁移列表。
204、 根据数据迁移列表和路由表信息生成数据迁移任务, 并从具有相应 数据备份的正常存储节点上迁移数据。
根据图 2c所示的分区调整后各个存储节点和分区的映射关系, 以及图 2a 所示的原始的存储节点和分区的映射关系可知,集群中每个分区的数据备份在 另外两个存储节点上,所以可从这两个存储节点中的任意一个上获取数据备份 来恢复数据。 例如, 具体可以如下:
首先, 具体可以根据数据迁移列表确定当前需要数据迁移的存储节点,作 为偷数据的存储节点, 比如, 以图 2c为例, 数据迁移列表中指示需要数据迁 移的存储节点包括: N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil , 则此时, 可 以先确定 N2为当前需要数据迁移的存储节点, 待 N2上的数据迁移完毕后, 再确定 N3为当前需要数据迁移的存储节点, 以进行数据迁移, 依次类推, 直 至迁移列表中所有的 "需要数据迁移的存储节点" 的数据均迁移完毕为止。
其次,可以通过查找路由表信息确定该当前需要数据迁移的存储节点上的 分区的备份数据所在的存储节点,从该备份数据所在的存储节点中选择存储节 点, 以作为贡献数据的存储节点; 比如, 存储节点 N2需要进行数据迁移的分 区为: P32、 P23、 P30和 P5; 由路由表信息 (路由表信息中存储了各个存储 节点和分区的映射关系)可查出, P32的数据备份存储在存储节点 N9和 N10 上, 于是, 此时可根据预置策略从存储节点 N9和 N10中选择出可作为贡献数 据的存储节点, 比如, 选择 N9作为贡献数据的存储节点。 其中, 预置策略可 根据实际应用的需求进行设置。
在确定了偷数据的存储节点和贡献数据的存储节点之后,即可根据确定的 偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
例如, 具体可以将数据迁移任务分成三个级别的任务: 总迁移任务队列
( RebalancingTaskQueue )、 总迁移任务队列中的任务 ( rebalanceTaskn )和两 个存储节点之间的任务; 如下:
( 1 )总迁移任务队列;
总迁移任务队列中可以包括 n个任务, 比如, rebalanceTaskl、
rebalanceTask2和 rebalanceTask3 , 等等。 其中, n表示每一次有磁盘发生故障 时为集群制定的数据迁移任务。
( 2 )总迁移任务队列中的任务
存储系统根据集群的故障存储节点的个数制定的任务,与故障存储节点相 对应, 一般一个故障存储节点对应一个任务, 这些任务生成后, 放进总迁移任 务队列中, 以待执行。 比如, 可以将第一次故障后生成的数据迁移任务称为 rebalanceTaskl , 将第二次故障后生成的数据迁移任务称为 rebalanceTask2, 以 此类推, 等等。
( 3 ) 两个存储节点之间的任务
每个总迁移任务队列中的任务中可以包括至少一个 "两个存储节点之间的 任务", 所谓两个存储节点之间的任务, 指的是具体到两个存储节点之间的数 据迁移任务, 这两个存储节点, 一个为偷数据的存储节点, 一个为贡献数据的 存储节点, 具体可以用于 X<- Y partitions[k]来表示, 其中, X为偷数据的存 储节点, Y为贡献数据的存储节点, partitions [k]表示 Y节点上的分区 k。比如, 2 < -- 9 partitions[32]表示节点 2从节点 9上偷分区 32的数据。
例如, 根据步骤 202中存储节点 N2 、 N3 、 N4 和 N5所新增的几个分 区, 可以制定出如下 "两个存储节点之间的任务":
2 <— 9 partitions [32];
3 <— 9 partitions [17];
4 <— 3 partitions[l];
5 < - 2 partitions [16];
2 <— 10 partitions [30];
3 <— 8 partitions[7,8];
4 <— 8partitions [15,23,24];
5 < - 3 partitions [9];
2 <— 5 partitions[5];
3 <— 5 partitions [12];
4 <— 9 partitions[31];
5 < - 8 partitions [7];
2 <— 8 partitions [23]; 5 <— llpartitions[21];
……, 等等。
以存储节点 Ν2为例, Partition32原本是存储节点 6上的分区, 由于存储 节点 6发生故障, 所以数据只能从保存有它的数据备份的存储节点 N9或 N10 上迁移, 所以制定任务时, 显示的是最终迁移数据的分区所在的存储节点, 比 如, 上述任务中显示的为存储节点 N9。 此外, 需说明的是, 一个存储节点可 以从另一个存储节点中偷多个数据备份, 比如 4 < -- 8 partitions[15,23,24]表示 存储节点 N4从存储节点 N8上偷三个分区: partitionl5 (即 P15 )、 partition 23 ( P23 ) ^ partition 24 ( ^ P24 ) 的数据。
205、 并发执行总迁移任务队列中的数据迁移任务, 以进行数据重建; 例 ^口, H"5f以: ¾口下:
首先, 确定当前需要偷数据的存储节点, 其次, 确定属于当前需要偷数据 的存储节点的数据迁移任务, 然后,执行属于当前需要偷数据的存储节点的数 据迁移任务, 以进行数据重建。
例如, 在本实施例的例子中, 偷数据的存储节点一共有 8个, 分别是 N2, N3 , N4, N5 , N8, N9, N10和 Nil , 比如, 对于存储节点 N2来说, 它共有 四个数据迁移任务: 2 <—- 9 partitions[32]、 2 <— 8 partitions[23] , 2 <— 10 partitions[30]和 2 < -- 5 partitions [5]。 因此, 如果确定存储节点 N2为当前需要 偷数据的存储节点, 则将属于存储节点 N2的这四个数据迁移任务并发执行, 其他存储节点的确定方法与此相同, 在此不再赘述。
此外, 除了上述所说的存储节点内部的数据迁移任务需要并发执行之外, 各个存储节点之间也可以并发执行, 即并行处理 N2, N3 , N4, N5 , N8, N9, 誦和 Nil。
206、 确定有新的数据迁移列表时, 根据新的数据迁移列表和路由表信息 对数据迁移任务进行整合,得到整合后的数据迁移任务,将整合后的数据迁移 任务加入到总迁移任务队列, 并发执行总迁移任务队列中的任务, 即返回执行 步骤 205; 具体可以如下:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息(包括 更新后的路由表信息和更新前的路由表信息)确定新的需要数据迁移的存储节 点, 并生成新的数据迁移任务, 然后确定该新的需要数据迁移的存储节点是否 为原数据迁移任务中的偷数据的存储节点和 /或贡献数据的存储节点, 根据确 定的结果分别进行如下处理:
( 1 )若仅为原数据迁移任务中的偷数据的存储节点, 则此时将会涉及到 两类任务, 第一类是该存储节点自身的数据需要恢复, 第二类是该存储节点上 还没偷完的数据需要移到其他存储节点上来偷,故此时可进行如下操作来对数 据迁移任务进行整合:
删除原数据迁移任务中关于该 "新的需要数据迁移的存储节点"的数据迁 移任务, 保留关于该 "新的需要数据迁移的存储节点" 的新的数据迁移任务;
( 2 )若仅为原数据迁移任务中的贡献数据的存储节点, 则此时将会涉及 到两类任务, 第一类是该存储节点自身的数据需要恢复, 第二类是原本从该存 储节点上偷数据的存储节点需要移到其他存储节点上去偷数据,故此时可进行 如下操作来对数据迁移任务进行整合:
为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据 的存储节点, 重新选择新的贡献数据的节点, 以新的贡献数据的节点替换原数 据迁移任务中的 "新的需要数据迁移的存储节点", 保留关于该 "新的需要数 据迁移的存储节点" 的新的数据迁移任务;
( 3 )若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储 节点,则此时将会涉及到三类任务,第一类是该存储节点自身的数据需要恢复, 第二类是该存储节点上还没偷完的数据需要移到其他存储节点上来偷,第三类 是原本从该存储节点上偷数据的存储节点需要移到其他存储节点上去偷数据, 故此时可进行如下操作来对数据迁移任务进行整合:
删除原数据迁移任务中以该 "新的需要数据迁移的存储节点"作为偷数据 的存储节点的数据迁移任务; 为原数据迁移任务中需要到该 "新的需要数据迁 移的存储节点"上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的 贡献数据的节点替换原数据迁移任务中的该 "新的需要数据迁移的存储节点 "; 保留关于该 "新的需要数据迁移的存储节点" 的新的数据迁移任务;
( 4 )若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的 存储节点,则此时将只涉及到一类任务,即对该存储节点自身的数据进行恢复, 故此时可进行如下操作来对数据迁移任务进行整合:
保留关于该 "新的需要进行数据迁移的存储节点" 的新的数据迁移任务。 例如, 当步骤 205中的单个任务 rebalanceTaskl还没有执行完时, 集群中 又有新的存储节点发生故障, 则会触发一个新的任务 rebalanceTask2。 以下以 存储节点 N2发生故障为例进行说明。
如图 2d所示, 该图为存储节点 N2发生故障后, 经过分区调整所得到的 各存储节点和分区的映射关系示意图(即第二次分区调整后所得到的各存储节 点和分区的映射关系示意图), 反映出存储节点 N2发生故障后, 存储节点 N2 上的分区迁移到其他正常存储节点上后, 各个存储节点上分区的变化。
由图 2d中可以看出, 存储节点 N2的分区由于全部迁移到其他正常的存 储节点上去, 所以它的分区列表为空。 分区调整后各个存储节点和分区的映射 关系具体可以如下:
N1 ( );
N2 ( );
N3 (3, Γ, 2, 11, 9,, 10", 33, 36', 35", 17, 7,, 8", 12', 32^_ 301);
N4 (4, 2,, 3": 12, 10,, 11", 34, 33', 36", 1, 15,, 24", 31', 23, 1", 8,);
N5 ( 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, 21);
N9 (25, 28,, 27", 29, 32', 31", 19, 17,, 18", 14, 13', 26", 22 36, 161);
N10 (26, 25,, 28", 30, 29,, 32", 20, 18,, 19", 6, 27,, 34", 6' 15, 5% 17");
Nil (27, 26,, 25, 21, 19,, 20", 35, 34,, 33", 28, 4,, 14, 35,, 10, 23,); N12 ( )。
其中,下划线部分为存储节点 N2故障后,各个存储节点又新增的分区(即 第二次分区调整后的所增加的分区), 需说明的是, 粗体字体但没有下划线的 数字表示第一次分区调整后的增加的分区, 详见步骤 202。
由于发生故障的存储节点 N2既是偷数据的存储节点, 又是贡献数据的存 储节点, 而且, 由于在其发生故障后, N2上的任务都需要发生变化, 所以此 时将会涉及到三类任务: 第一类是 N 2上自身的数据需要恢复, 第二类是 N 2 上还没有偷完的数据需要转移到其他存储节点来偷,第三类是原本从存储节点 2上偷数据的存储节点需要转移到其他存储节点上偷数据。
对于第一类任务来说, 可根据第一次分区调整结果来恢复存储节点 N2自 身的数据。根据第一次调整分区后得到的存储节点和分区的对应关系可知,存 储节点 N2自身的数据包括 9个分区, 即需要恢复 partition[2, 8,, 1" , 10, 16,, 9" , 18, 24,, 17,,]的数据, 此处可得到的数据迁移任务为:
4 <- -- 3 partitions[l];
4 <- -- 8 partitions [8];
5 <- -- 4 partitions [2];
5 <- -- 8 partitions [24];
8< - -3 partitions [9];
8 <- — 10 partitions [18];
9 <- -- 8partitions[16];
10 <— 9 partitions [17];
11 <— 3 partitions [10]。
对于第二类任务来说, 可根据第二次分区调整结果来恢复存储节点 N2中 需要偷数据的分区中的数据, 也即是原数据迁移任务(即 rebalanceTaskl ) 中 需要迁移的数据。根据第一次调整分区后得到的存储节点和分区的对应关系可 知, 存储节点 N2上需要偷数据的分区有四个, 即需要恢复 partition[32, 23' , 30" , 5,]的数据。 此时可对应存储节点 N2发生故障后分区的变化情况, 直接 将 rebalanceTaskl中的任务取消, 变成 rebalanceTask2中的第二类任务, 这样 既不会造成数据迁移任务的失败,数据也没有丟失。 即此处可得到的数据迁移 任务为:
3 <— 9 partitions [32];
11 < - 10partitions[30] ;
3 <— 8 partitions [23];
10 <— 8 partitions[5]。
对于第三类来说, 原本从存储节点 N2上偷数据的存储节点需要转移到其 他存储节点上偷数据, 比如, rebalanceTaskl中的任务 5 <-— 2 partitions [ 16]需 要将存储节点 N2更改为正常的存储节点 N8, 即变成 5 < - 8 partitions[16 将这三类任务的重新组合, 即组成了整合后的数据迁移任务, 即 rebalanceTask2 , 如下:
4 <- - 8 partitions [8];
5 < - - 4 partitions [2];
5 < - - 8 partitions [24];
8<― 3 partitions [9];
8 <-- - 10 partitions [18];
9 <-- - 8partitions[16];
10 < - ― 9 partitions [17];
11 < - ― 3 partitions [10];
3 <-- - 9 partitions [32];
11 < - ― 10partitions[30] ;
3 <-- - 8 partitions [23];
10 < - ― 8 partitions[5];
5 < - - 8 partitions [16]
将 rebalanceTask2中的任务, 直接加入到总迁移任务队列, 并发执行总迁 移任务队列中的任务, 即返回执行步骤 205。
需说明的是, 虽然存储节点和分区的映射关系发生了变化,但由于客户端 在写入或读取数据时只需确定分区的所在位置,并不关心分区是属于哪个存储 节点, 所以, 在存储节点故障后, 并发执行数据迁移任务时, 读写流程并不会 受影响。 以下将对此作筒略说明。 (一 )写入流程 ( Put流程 )
以存储节点 D为例, 存储节点 D故障后, 迁移它的分区到新的存储节点 C上的整个写入流程具体可以如下:
步骤 Al、 客户端请求写入(key=abc, value=lll )的数据, 对该 key后进 行哈希运算(Hash )后, 得到 Hash值为 6, 由于原始的分区总数是 16个, 所 以, 根据 Hash值对分区总数 "16" 取模后, 可得到数值 6, 于是可以确定需 要将数据写入分区 P6, 从而可以建立起 key和分区的映射关系。 以此类推, 其他 key值也可如此建立起和分区的映射关系, 在此不再赘述。
在确定需要将数据写入分区 P6之后, 通过查找路由表信息后发现, 分区 P6在存储节点 D上, 所以请求的(key=abc, value=lll )的数据可写入存储节 点0。
步骤 A2、 若存储节点 D发生故障, 无法进行通信, 则此时会制定的数据 迁移任务, 将存储节点 D上的分区迁移到其他正常的存储节点上, 并更新路 由表信息, 比如, 将分区 P6迁移到存储节点 C上, 并更新路由表信息。
步骤 A3、客户端获取到更新后的路由表信息, 确定分区 P6在存储节点 C 上, 于是将数据写入到存储节点 C上。
可见, 虽然存储节点和分区的映射关系发生了变化,且需要执行数据迁移 任务以进行数据重建, 但对于客户端请求写入(key=abc, value=lll )的数据, 仍然可以成功地写入到存储节点 C上, 并不受影响。
(二)读取流程 (即 Get流程 )
还是以存储节点 D为例, 存储节点 D故障后, 迁移它的分区到新的存储 节点 C上的整个读取流程具体可以如下:
步骤 Bl、 客户端请求读取(key=abc, value=lll )的数据, 对该 key进行 哈希运算(Hash )后, 得到 Hash值为 6, 由于原始的分区总数是 16个, 所以, 根据 Hash值对分区总数 "16" 取模后, 可得到数值 6, 于是可以确定可以从 分区 P6上读取到相应的数据, 从而可以建立起 key和分区的映射关系。 以此 类推, 其他 key值也可如此建立起和分区的映射关系, 在此不再赘述。
在确定可以从分区 P6上读取到数据之后, 通过查找路由表信息后发现分 区 P6在存储节点 D上, 所以请求的 (key=abc, value=lll ) 的数据可在存储 节点 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=lll )的数据, 仍然可以成功地读取到, 并不受影响。
由上可知, 本发明实施例通过并发的执行数据迁移任务,提升了数据的恢 复速度, 从而提高数据重建的效率。 而且, 在确定有新的数据迁移列表时, 还 可以根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,将相同的 迁移任务取消,从而避免数据迁移任务的重复,在保证数据迁移任务不会因为 存储节点的故障而执行失败的同时, 大大减少了数据迁移的时间, 进一步提高 了数据重建的效率。 进一步的, 在进行该数据重建的过程中, 还不会影响到读 写请求操作, 保证了存储系统的可靠性。 实施例三、
为了更好地实施以上方法, 本发明实施例还相应地提供一种数据重建设 备, 可以作为存储系统的客户端, 如图 3所示, 该数据重建设备包括获取单元 301、 生成单元 302和执行单元 303;
获取单元 301 , 用于获取数据迁移列表, 其中, 数据迁移列表指示需要数 据迁移的存储节点上需要数据迁移的分区; 生成单元 302, 用于根据路由表信息和获取单元 301获取到的数据迁移列 表生成数据迁移任务, 其中,路由表信息指示集群中存储节点和分区的映射关 系;
执行单元 303 , 用于并发执行集群中存储节点的数据迁移任务, 以进行数 据重建。
此外, 可选的, 如果在进行数据重建的过程中, 又有新的存储节点发生故 障, 则此时需要获取新的数据迁移列表,根据新的数据迁移列表和路由表信息 对数据迁移任务进行整合,得到整合后的数据迁移任务, 然后再并发执行整合 后的数据迁移任务, 以进行数据重建。 即:
所述生成单元 302, 还用于确定有新的数据迁移列表时, 根据新的数据迁 移列表和路由表信息对数据迁移任务进行整合, 得到整合后的数据迁移任务; 则所述执行单元, 用于并发执行集群中存储节点的整合后的数据迁移任 务, 以进行数据重建; 例如, 具体可以根据数据迁移任务从贡献数据的存储节 点上将备份数据复制到该当前需要偷数据的存储节点上,参见前面的方法实施 例, 在此不再赘述。
其中, 获取单元 301可以包括获取子单元、调整子单元、 更新子单元和确 定子单元;
获取子单元, 用于获取集群中存储节点的状态信息;
其中,存储节点的状态信息又称为同步心跳信息,如果在一定的时间窗内 没有该存储节点的状态信息, 则可认为该存储节点处于临时故障状态; 如果持 续故障时间达到了系统设定的时间, 比如 X小时, 则认为该存储节点处于永 久故障状态
调整子单元,用于根据获取子单元获取到的存储节点的状态信息对分区进 行调整;
更新子单元, 用于根据分区的调整情况更新路由表信息, 其中, 该路由表 信息指示集群中存储节点和分区的映射关系, 此外, 该路由表还可以指示每个 存储节点的状态信息;
确定子单元,用于根据更新子单元更新后的路由表信息和更新前的路由表 信息确定数据迁移列表。 其中,调整子单元, 具体用于在预设的时间内未收到存储节点的状态信息 时,确定该存储节点为故障存储节点, 将故障存储节点上的分区迁移到其他正 常的存储节点上, 则此时, 该 "其他正常的存储节点" 则称为需要数据迁移的 存储节点。
其中, 生成单元 302具体可以包括处理子单元和生成子单元;
处理子单元, 用于根据数据迁移列表确定当前需要数据迁移的存储节点, 作为偷数据的存储节点;通过查找路由表信息确定该当前需要数据迁移的存储 节点上的分区的备份数据所在的存储节点;从该备份数据所在的存储节点中选 择存储节点, 以作为贡献数据的存储节点;
生成子单元,用于根据所述处理子单元确定的偷数据的存储节点和贡献数 据的存储节点生成数据迁移任务。
此外, 生成单元 302可以包括生成子单元和整合子单元;
生成子单元, 用于确定有新的数据迁移列表时,根据新的数据迁移列表确 定新的需要数据迁移的存储节点, 并生成新的数据迁移任务;
整合子单元,用于确定该新的需要数据迁移的存储节点是否为原数据迁移 任务中的偷数据的存储节点和 /或贡献数据的存储节点, 然后进行如下操作: 若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中 关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需 要数据迁移的存储节点的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中 需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的 贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需 要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数 据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点, 则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的 存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移 的存储节点上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的贡献 数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留 关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储 节点, 则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任 务。
需说明的是, 虽然存储节点和分区的映射关系发生了变化,但由于客户端 在写入或读取数据时只需确定分区的所在位置,并不关心分区是属于哪个存储 节点, 所以, 在存储节点故障后, 执行单元 303在并发执行数据迁移任务时, 读写流程并不会受影响, 具体可参见实施例二中的说明, 在此不再赘述。
具体实施时, 以上各个单元可以作为独立的实体来实现,也可以进行任意 组合,作为同一或若干个实体来实现, 以上各个单元的具体实施可参见前面的 方法实施例, 在此不再赘述。
由上可知,本实施例的数据重建设备的获取单元 301可以获取数据迁移列 表, 然后由生成单元 302根据数据迁移列表和路由表信息生成数据迁移任务, 再由执行单元 303 并发执行集群中存储节点的数据迁移任务, 以进行数据重 建,由于可以并发地执行数据迁移任务,所以可以提高数据重建的效率,而且, 在确定有新的数据迁移列表时,还可以由整合子单元根据新的数据迁移列表对 数据迁移任务进行整合, 以删除相同的数据迁移任务, 所以, 可以避免数据迁 移任务的重复, 大大减少了数据迁移的时间, 提高了数据重建的效率。 进一步 的, 在进行该数据重建的过程中, 还不会影响到读写请求操作, 保证了存储系 统的可靠性。 实施例四、
相应的, 本发明实施例还提供一种存储系统, 可以包括本发明实施例提供 的任一种数据重建设备, 其中, 该数据重建设备的说明具体可参见实施例三, 在此不再赘述。 例如, 具体可以如下:
数据重建设备, 用于获取数据迁移列表, 所述数据迁移列表指示需要数据 迁移的存储节点上需要数据迁移的分区;根据数据迁移列表和路由表信息生成 数据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关系; 并发 执行集群中存储节点的数据迁移任务, 以进行数据重建。 比如, 具体可以根据 该数据迁移任务从贡献数据的存储节点上将备份数据复制到该当前需要偷数 据的存储节点上, 具体可参见前面的方法实施例, 在此不再赘述。 可选的, 如果在进行数据重建的过程中, 又有新的存储节点发生故障, 则 此时需要获取新的数据迁移列表,据新的数据迁移列表和路由表信息对数据迁 移任务进行整合,得到整合后的数据迁移任务, 然后再并发执行集群中存储节 点的整合后的数据迁移任务, 以进行数据重建。 即:
数据重建设备,还用于确定有新的数据迁移列表时,根据新的数据迁移列 表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务; 并发 执行集群中存储节点的整合后的数据迁移任务, 以进行数据重建。
其中, 获取数据迁移列表具体可以包括:
获取集群中存储节点的状态信息;根据存储节点的状态信息对分区进行调 整; 根据分区的调整情况更新路由表信息, 其中, 该路由表信息指示存储节点 和分区的映射关系;根据更新后的路由表信息和更新前的路由表信息确定数据 迁移列表。 其中, 该路由表还可以指示每个存储节点的状态信息。
其中, 根据存储节点的状态信息对分区进行调整具体可以如下:
若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障 存储节点; 将故障存储节点上的分区迁移到其他正常的存储节点上。
其中, 根据数据迁移列表生成数据迁移任务具体可以如下:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储 节点;通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的 备份数据所在的存储节点; 从该备份数据所在的存储节点中选择存储节点, 以 作为贡献数据的存储节点;根据所述偷数据的存储节点和贡献数据的存储节点 生成数据迁移任务。
此外, 该存储系统还可以包括一个或多个存储节点;
存储节点,用于存储数据,以及接受数据重建设备的分区调整和数据迁移。 以上各个设备的具体实施可参见前面的实施例, 在此不再赘述。
由上可知, 本实施例的数据重建设备可以获取数据迁移列表, 然后根据数 据迁移列表和路由表信息生成数据迁移任务,再并发地执行数据迁移任务, 以 进行数据重建, 由于可以并发地执行集群中存储节点的数据迁移任务, 所以可 以提高数据重建的效率, 而且, 在确定有新的数据迁移列表时, 还可以根据新 的数据迁移列表和路由表信息对数据迁移任务进行整合,以删除相同的数据迁 移任务, 所以, 可以避免数据迁移任务的重复, 大大减少了数据迁移的时间, 提高了数据重建的效率。 进一步的, 在进行该数据重建的过程中, 还不会影响 到读写请求操作, 保证了存储系统的可靠性。 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: 只读存储器(ROM, Read Only Memory ), 随机存取记忆体(RAM, Random Access Memory ) , 磁盘或光盘等。
以上对本发明实施例所提供的一种数据重建方法、装置和系统进行了详细 施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本领域 的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之 处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims (15)

  1. 权 利 要 求
    1、 一种数据重建方法, 其特征在于, 包括:
    获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需 要数据迁移的分区;
    根据所述数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息 指示集群中存储节点和分区的映射关系;
    并发执行所述集群中存储节点的数据迁移任务, 以进行数据重建。
  2. 2、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述数据迁移列 表和路由表信息生成数据迁移任务, 包括:
    确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据 迁移任务进行整合, 得到整合后的数据迁移任务;
    则所述并发执行所述集群中存储节点的数据迁移任务,以进行数据重建包 括:并发执行所述集群中存储节点的整合后的数据迁移任务,以进行数据重建。
  3. 3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述获取数据迁移列 表, 包括:
    获取集群中存储节点的状态信息;
    根据存储节点的状态信息对分区进行调整;
    根据分区的调整情况更新所述路由表信息;
    根据更新后的路由表信息和更新前的路由表信息确定所述数据迁移列表。
  4. 4、 根据权利要求 3所述的方法, 其特征在于, 所述获取集群中存储节点 的状态信息, 根据存储节点的状态信息对分区进行调整, 包括:
    若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障 存储节点;
    将故障存储节点上的分区迁移到其他正常的存储节点上。
  5. 5、 根据权利要求 2至 4任一项所述的方法, 其特征在于, 所述根据数据 迁移列表和路由表信息生成数据迁移任务, 包括:
    根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储 节点;
    通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的 备份数据所在的存储节点;
    从所述备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储 节点;
    根据所述偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
  6. 6、 根据权利要求 5所述的方法, 其特征在于, 所述并发执行所述集群中 存储节点的数据迁移任务, 以进行数据重建, 包括:
    根据所述数据迁移任务从贡献数据的存储节点上将备份数据复制到所述 当前需要偷数据的存储节点上。
  7. 7、 根据权利要求 5或 6所述的方法, 其特征在于, 所述确定有新的数据 迁移列表时, 根据新的数据迁移列表和路由表信息对数据迁移任务进行整合, 得到整合后的数据迁移任务, 包括:
    确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息确定新 的需要数据迁移的存储节点, 并生成新的数据迁移任务;
    确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数 据的存储节点和 /或贡献数据的存储节点;
    若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中 关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需 要数据迁移的存储节点的新的数据迁移任务;
    若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中 需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的 贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需 要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数 据迁移任务;
    若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点, 则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的 存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移 的存储节点上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的贡献 数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留 关于所述新的需要数据迁移的存储节点的新的数据迁移任务; 若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储 节点, 则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任 务。
  8. 8、 一种数据重建设备, 其特征在于, 包括:
    获取单元, 用于获取数据迁移列表, 所述数据迁移列表指示需要数据迁移 的存储节点上需要数据迁移的分区;
    生成单元,用于根据路由表信息和获取单元获取到的数据迁移列表生成数 据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关系;
    执行单元, 用于并发执行所述集群中存储节点的数据迁移任务, 以进行数 据重建。
  9. 9、 根据权利要求 8所述的数据重建设备, 其特征在于,
    所述生成单元,还用于确定有新的数据迁移列表时,根据新的数据迁移列 表和路由表信息对数据迁移任务进行整合, 得到整合后的数据迁移任务; 则所述执行单元, 用于并发执行集群中存储节点的整合后的数据迁移任 务, 以进行数据重建。
  10. 10、 根据权利要求 8或 9所述的数据重建设备, 其特征在于, 所述获取单 元包括:
    获取子单元, 用于获取集群中存储节点的状态信息;
    调整子单元,用于根据获取子单元获取到的存储节点的状态信息对分区进 行调整;
    更新子单元, 用于根据分区的调整情况更新所述路由表信息;
    确定子单元,用于根据更新子单元更新后的路由表信息和更新前的路由表 信息确定数据迁移列表。
  11. 11、 根据权利要求 10所述的数据重建设备, 其特征在于,
    所述调整子单元, 具体用于在预设的时间内未收到存储节点的状态信息 时,确定该存储节点为故障存储节点, 将故障存储节点上的分区迁移到其他正 常的存储节点上。
  12. 12、 根据权利要求 8至 11中任一项所述的数据重建设备, 其特征在于, 所述生成单元包括: 处理子单元, 用于根据数据迁移列表确定当前需要数据迁移的存储节点, 作为偷数据的存储节点;通过查找路由表信息确定所述当前需要数据迁移的存 储节点上的分区的备份数据所在的存储节点;从所述备份数据所在的存储节点 中选择存储节点, 以作为贡献数据的存储节点;
    生成子单元,用于根据所述处理子单元确定的偷数据的存储节点和贡献数 据的存储节点生成数据迁移任务。
  13. 13、 根据权利要求 12所述的数据重建设备, 其特征在于,
    所述执行单元,具体用于根据所述数据迁移任务从贡献数据的存储节点上 将备份数据复制到所述当前需要偷数据的存储节点上。
  14. 14、 根据权利要求 12或 13所述的数据重建设备, 其特征在于, 所述生成 单元包括:
    生成子单元, 用于确定有新的数据迁移列表时,根据新的数据迁移列表确 定新的需要数据迁移的存储节点, 并生成新的数据迁移任务;
    整合子单元,用于确定所述新的需要数据迁移的存储节点是否为原数据迁 移任务中的偷数据的存储节点和 /或贡献数据的存储节点; 若仅为原数据迁移 任务中的偷数据的存储节点,则删除原数据迁移任务中关于所述新的需要数据 迁移的存储节点的数据迁移任务,保留关于所述新的需要数据迁移的存储节点 的新的数据迁移任务; 若仅为原数据迁移任务中的贡献数据的存储节点, 则为 原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储 节点, 重新选择新的贡献数据的节点, 以新的贡献数据的节点替换原数据迁移 任务中的所述新的需要数据迁移的存储节点,保留关于所述新的需要数据迁移 的存储节点的新的数据迁移任务;若既是原数据迁移任务中的偷数据的存储节 点又是贡献数据的存储节点,则删除原数据迁移任务中以所述新的需要数据迁 移的存储节点作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需 要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡 献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要 数据迁移的存储节点;保留关于所述新的需要数据迁移的存储节点的新的数据 迁移任务;若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的 存储节点,则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移 任务。
  15. 15、 一种存储系统, 其特征在于, 包括权利要求 8至 14所述的任一种数 据重建设备。
CN201280000110.7A 2012-02-09 2012-02-09 一种数据重建方法、装置和系统 Active CN103354923B (zh)

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 true CN103354923A (zh) 2013-10-16
CN103354923B 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599308A (zh) * 2016-12-29 2017-04-26 郭晓凤 一种分布式元数据管理方法及系统
US10271997B2 (en) 2014-04-08 2019-04-30 The Procter & Gamble Company Absorbent articles having substrates having zonal treatments
CN109901953A (zh) * 2019-02-14 2019-06-18 新华三技术有限公司成都分公司 数据重构方法及装置
CN111857543A (zh) * 2019-04-26 2020-10-30 伊姆西Ip控股有限责任公司 用于数据迁移的方法、设备和计算机程序产品
WO2020238858A1 (zh) * 2019-05-30 2020-12-03 深圳前海微众银行股份有限公司 数据迁移方法、装置、及计算机可读存储介质
CN115113798A (zh) * 2021-03-17 2022-09-27 中国移动通信集团山东有限公司 一种应用于分布式存储的数据迁移方法、系统及设备
WO2023040538A1 (zh) * 2021-09-14 2023-03-23 腾讯科技(深圳)有限公司 一种数据迁移的方法、装置、设备、介质和计算机产品

Families Citing this family (35)

* Cited by examiner, † Cited by third party
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 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
CN105227602A (zh) * 2014-06-20 2016-01-06 北京新媒传信科技有限公司 一种负载均衡的方法、客户端、注册服务器和系统
KR101912728B1 (ko) 2014-11-05 2018-10-29 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 처리 방법 및 장치
BR112016030547B1 (pt) * 2014-11-06 2022-11-16 Huawei Cloud Computing Technologies Co., Ltd Sistema e método de replicação e de armazenamento distribuído
CN104580432A (zh) * 2014-12-23 2015-04-29 上海帝联信息科技股份有限公司 memcached系统及内存缓存数据提供、维护和集群维护方法及装置
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
US11100107B2 (en) 2016-05-16 2021-08-24 Carbonite, Inc. Systems and methods for secure file management via an aggregation of cloud storage services
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
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
US10768850B2 (en) 2018-04-30 2020-09-08 Amazon Technologies, Inc. Distributed replica for block 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
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
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
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
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
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
US11256671B2 (en) * 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
CN111400241B (zh) * 2019-11-14 2024-04-05 杭州海康威视系统技术有限公司 数据重构方法和装置
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes
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 (5)

* Cited by examiner, † Cited by third party
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 株式会社日立制作所 数据迁移方法以及信息处理系统
US7685129B1 (en) * 2004-06-18 2010-03-23 Emc Corporation Dynamic data set migration
CN102033794A (zh) * 2011-01-10 2011-04-27 中国电子科技集团公司第五十二研究所 一种flash固态盘数据冗余保护方法
US20110191389A1 (en) * 2005-07-28 2011-08-04 Vmware, Inc. Distributed data management system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702850B2 (en) * 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
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 株式会社日立製作所 フェイルオーバ方法、およびその計算機システム。
WO2008102195A1 (en) 2007-02-22 2008-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (dht) overlay network
WO2009134772A2 (en) * 2008-04-29 2009-11-05 Maxiscale, 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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679000A (zh) * 2002-06-24 2005-10-05 网络装置公司 在raid数据重建和转移中使用文件系统信息
US7685129B1 (en) * 2004-06-18 2010-03-23 Emc Corporation Dynamic data set migration
US20110191389A1 (en) * 2005-07-28 2011-08-04 Vmware, Inc. Distributed data management system
CN101154146A (zh) * 2006-09-29 2008-04-02 株式会社日立制作所 数据迁移方法以及信息处理系统
CN102033794A (zh) * 2011-01-10 2011-04-27 中国电子科技集团公司第五十二研究所 一种flash固态盘数据冗余保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANTONY ROWSTRON ET.: "Storage management and caching in PAST,a large-scale,persistent peer-to-peer storage utility", 《OPERATING SYSTEMS REVIEW, ACM, NEW YORK, NY, US》, vol. 35, no. 5, 21 October 2001 (2001-10-21), pages 188 - 201 *
VINODH VENKATESAN ET.: "Effect of Replica Placement on the Reliability of Large-Scale Data Storage Systems", 《MODELING,ANALYSIS&SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS),2010 IEEE INTERNATIONAL SYMPOSIUM ON,IEEE,PISCATAWAY,NJ,USA》, 17 August 2010 (2010-08-17), pages 79 - 88, XP031760499 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10271997B2 (en) 2014-04-08 2019-04-30 The Procter & Gamble Company Absorbent articles having substrates having zonal treatments
CN106599308A (zh) * 2016-12-29 2017-04-26 郭晓凤 一种分布式元数据管理方法及系统
CN106599308B (zh) * 2016-12-29 2020-01-31 郭晓凤 一种分布式元数据管理方法及系统
CN109901953A (zh) * 2019-02-14 2019-06-18 新华三技术有限公司成都分公司 数据重构方法及装置
CN109901953B (zh) * 2019-02-14 2022-07-08 新华三技术有限公司成都分公司 数据重构方法及装置
CN111857543A (zh) * 2019-04-26 2020-10-30 伊姆西Ip控股有限责任公司 用于数据迁移的方法、设备和计算机程序产品
WO2020238858A1 (zh) * 2019-05-30 2020-12-03 深圳前海微众银行股份有限公司 数据迁移方法、装置、及计算机可读存储介质
CN115113798A (zh) * 2021-03-17 2022-09-27 中国移动通信集团山东有限公司 一种应用于分布式存储的数据迁移方法、系统及设备
CN115113798B (zh) * 2021-03-17 2024-03-19 中国移动通信集团山东有限公司 一种应用于分布式存储的数据迁移方法、系统及设备
WO2023040538A1 (zh) * 2021-09-14 2023-03-23 腾讯科技(深圳)有限公司 一种数据迁移的方法、装置、设备、介质和计算机产品

Also Published As

Publication number Publication date
US9904599B2 (en) 2018-02-27
EP2784675A1 (en) 2014-10-01
US20140351636A1 (en) 2014-11-27
EP2784675A4 (en) 2014-11-26
WO2013117002A1 (zh) 2013-08-15
EP2784675B1 (en) 2016-12-28
CN103354923B (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN103354923A (zh) 一种数据重建方法、装置和系统
WO2020204880A1 (en) Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
US8060703B1 (en) Techniques for allocating/reducing storage required for one or more virtual machines
CN103827804B (zh) 在物理区块间拷贝数据的磁盘阵列装置、磁盘阵列控制器以及方法
JP5944001B2 (ja) ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法
CN111078121A (zh) 一种分布式存储系统数据迁移方法、系统、及相关组件
CN109992206B (zh) 数据分布存储方法及相关装置
JP2008524724A (ja) クラスタ・ストレージ環境内で並列データ移行を実施する方法
WO2008109321A1 (en) Method and system for a self managing and scalable grid storage
US10387273B2 (en) Hierarchical fault tolerance in system storage
WO2014205847A1 (zh) 一种分区平衡子任务下发方法、装置与系统
CN106302607A (zh) 应用于云计算的块存储系统及方法
TWI617924B (zh) 記憶體資料分版技術
US9733835B2 (en) Data storage method and storage server
CN107704212B (zh) 一种数据处理方法及装置
CN105718221A (zh) 一种数据存储的方法、装置和系统
US10592453B2 (en) Moving from back-to-back topology to switched topology in an InfiniBand network
WO2020029748A1 (zh) 分布式存储系统中管理快照和差异位图生成方法和产品
CN111078119B (zh) 一种数据重建方法、系统、装置及计算机可读存储介质
WO2013106993A1 (zh) 扩容的方法和设备、以及访问数据的方法和设备
JP5355725B2 (ja) 必須データ管理システム及び計算機及び必須データ管理プログラム及び記録媒体及び通信方法
US20220391121A1 (en) Virtual Disk Migration Method, Apparatus and Device, and Readable Storage Medium
CN111400098B (zh) 一种副本管理方法、装置、电子设备及存储介质
JP6067888B2 (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