WO2014205847A1 - 一种分区平衡子任务下发方法、装置与系统 - Google Patents
一种分区平衡子任务下发方法、装置与系统 Download PDFInfo
- Publication number
- WO2014205847A1 WO2014205847A1 PCT/CN2013/078510 CN2013078510W WO2014205847A1 WO 2014205847 A1 WO2014205847 A1 WO 2014205847A1 CN 2013078510 W CN2013078510 W CN 2013078510W WO 2014205847 A1 WO2014205847 A1 WO 2014205847A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- partition
- node
- subtask
- balancing
- distribution information
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
Definitions
- the partition balancing subtask that cannot be completed is deleted from the current partition balancing subtask, and the unbalanced partition balancing subtask includes a partition in which the node where the migration partition is faulty Balancing the subtask, the partition balancing subtask of the destination node failure.
- the node partition distribution information constitutes partition distribution information
- the node partition distribution information refers to a correspondence between a node and a partition stored on the node, and can also understand the distribution of the component region in a certain node.
- ⁇ node 1; partition 0, partition 100> node 1 has partition 2 and partition 100; similarly, ⁇ node 2; partition 1, partition 101> indicates that node 2 has The two partitions of partition 1, partition 101, ⁇ node 3; partition 3, partition 301> indicate that there are three partitions of partition 3 and partition 301 on node 3.
- the generated target partition distribution information may include 2 node partition distribution information: ⁇ node 2; partition 1, partition 101, partition 0 >, ⁇ Node 3; Partition 3, Partition 301, Partition 100>.
- step 15 when the controller generates the second partition balancing subtask set, if there are multiple candidate partitions available for migration, then one of the nodes whose data integrity is the complete partition is selected as the source node, combined with the step 15
- the partition distribution information change amount, and jointly generates a second partition balance subtask set.
- the selection integrity in step 15 and the step is the source node of the complete partition, and may be performed in parallel in the execution order, or may be performed first.
- the partition migration task triggered by a node failure the following steps are used as an example to describe how a specific partition migration subtask is generated in step 16.
- the node that receives the partition balancing subtask performs the partition balancing subtask as the destination node of the partition balancing subtask.
- the specific execution method refer to sub-steps (1), (2) and (3) in step 13.
- the partition distribution information change amount records the current partition distribution information to be the migration partition to which the target partition distribution information needs to be migrated, and the destination node of each of the migration partitions; for each of the migration partitions, select A node where the migration partition is located generates a second partition balance subtask set according to the node and partition distribution information variation of each of the migration partitions.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种分区平衡子任务下发方法、装置及系统。应用于控制器中,所述控制器和至少2个节点组成存储系统,控制器收到第二分区平衡任务后,生成第二分区平衡子任务集合,所述第二分区平衡子任务集合包括至少一个分区平衡子任务,每个所述分区平衡子任务记录有:迁移分区、所述迁移分区所在节点、以及目的节点;查找当前分区平衡子任务集合,删除所述第二分区平衡子任务集合与所述当前分区平衡子任务集合中重复的分区平衡子任务;把经过去重后余下的分区平衡子任务,下发给各所述分区平衡子任务中记录的目的节点。应用本发明可以实现分区在节点之间的迁移。
Description
一种分区平衡子任务下发方法、 装置与系统 技术领域
本发明涉及信息技术领域, 特别有关于一种任务处理技术。 背景技术
随着计算机技术和网络技术的发展, 信息量呈现几何级数的增长, 人类 的数据达到前所未有的规模, 对这些超大规模数据的存储和管理已经成为工 业界一大挑战。 用传统的集中存储管理超大规模数据时, 无法提供高效的读 写操作, 无法满足良好的扩展性以及高可用性。 在这种背景下, 出现了各种 由多存储节点组成的存储系统。
在多存储节点组成存储系统中, 为了避免单点故障造成数据丟失。 同一 份数据一般都保存有多份副本, 所以, 维持数据的副本数量稳定也成为系统 的迫切需求。 另外, 随着人们对存储系统可持续工作需求的日益剧增, 分布 式存储系统的在线扩容也成为系统基本功能的不可或缺部分。 那么怎么在系 统数据有损坏的情况下, 下发数据恢复任务, 成为当前技术的重点。 发明内容
本发明提供一种分区平衡子任务下发方法、 装置及系统, 可以下发分区 迁移任务。
第一方面, 本发明实施例提供一种分区平衡任务下发方法, 该方法应用 于控制器中, 所述控制器和至少 2个节点组成存储系统, 其中, 每个节点包 含至少一个分区, 其特征在于, 该方法包括: 收到第二分区平衡任务后, 生 成第二分区平衡子任务集合, 所述第二分区平衡子任务集合包括至少一个分 区平衡子任务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁移分区 所在节点、 以及目的节点; 查找当前分区平衡子任务集合, 删除所述第二分 区平衡子任务集合与所述当前分区平衡子任务集合中重复的分区平衡子任务; 把删除重复的分区平衡子任务之后的第二分区平衡子任务集合中各所述分区 平衡子任务, 下发给各所述分区平衡子任务中记录的目的节点。
在第一方面的第一种可能的实现方式中, 下发分区平衡子任务之前, 进 一步包括:从所述当前分区平衡子任务中,删除无法完成的分区平衡子任务, 子任务、 所述目的节点故障的分区平衡子任务。
第二方面, 本发明实施例提供一种分区平衡子任务下发装置, 其特征在 于, 该装置包括: 分区平衡子任务生成模块, 用于在收到第二分区平衡任务 后, 生成第二分区平衡子任务集合, 所述第二分区平衡子任务集合包括至少 一个分区平衡子任务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁 移分区所在节点、 以及目的节点; 分区平衡子任务删除模块, 查找当前分区 平衡子任务集合, 删除所述第二分区平衡子任务集合与所述当前分区平衡子 任务集合中重复的分区平衡子任务; 分区平衡子任务下发模块, 把删除重复 的分区平衡子任务之后的第二分区平衡子任务集合中各所述分区平衡子任务, 下发给各所述分区平衡子任务中记录的目的节点。
第二方面的第一种可能实现方式中, 从所述当前分区平衡子任务中, 删 除无法完成的分区平衡子任务, 所述无法完成的分区平衡子任务包括所述迁 移分区所在节点故障的分区平衡子任务、 所述目的节点故障的分区平衡子任 务。
第三方面, 本发明实施例提供一种存储系统, 包括第二方面或者第二方 面的第一种可能实现方式中的分区平衡子任务下发装置, 还包括至少 2个节 点, 其中, 所述节点用于, 在接收到所述分区平衡子任务后, 作为分区平衡 子任务的目的节点执行所述分区平衡子任务。
第四方面, 本发明实施例提供一种分区平衡任务下发方法, 该方法应用 于控制器中, 所述控制器和至少 2个节点组成存储系统, 其中, 每个节点包 含至少一个分区, 其特征在于, 该方法包括: 收到第二分区平衡任务后, 所 述第二分区平衡任务是因为节点发生故障而生成的分区平衡任务, 生成第二 分区平衡子任务集合, 所述第二分区平衡子任务集合包括至少一个分区平衡 子任务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁移分区所在节
点、 以及目的节点; 查找当前分区平衡子任务集合, 从所述当前分区平衡子 任务中, 删除无法完成的分区平衡子任务, 所述无法完成的分区平衡子任务 包括所述迁移分区位于所述发生故障的节点分区平衡子任务、 目的节点是所 述发生故障的节点的分区平衡子任务; 把删除重复的分区平衡子任务之后的 第二分区平衡子任务集合中各所述分区平衡子任务, 下发给各所述分区平衡 子任务中记录的目的节点。
在第四方面的第一种可能的实现方式中, 下发分区平衡子任务之前, 进 一步包括: 删除所述第二分区平衡子任务集合与所述当前分区平衡子任务集 合中重复的分区平衡子任务。
第五方面, 本发明实施例提供一种分区平衡子任务下发装置, 其特征在 于, 该装置包括: 分区平衡子任务生成模块, 用于在收到第二分区平衡任务 后, 所述第二分区平衡任务是因为节点故障而生成的分区平衡任务, 生成第 二分区平衡子任务集合, 所述第二分区平衡子任务集合包括至少一个分区平 衡子任务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁移分区所在 节点、 以及目的节点; 分区平衡子任务删除模块, 查找当前分区平衡子任务 集合, 从所述当前分区平衡子任务中, 删除无法完成的分区平衡子任务, 所 述无法完成的分区平衡子任务包括所述迁移分区位于所述发生故障的节点分 区平衡子任务、 目的节点是所述发生故障的节点的分区平衡子任务; 分区平 衡子任务下发模块, 把删除重复的分区平衡子任务之后的第二分区平衡子任 务集合中各所述分区平衡子任务, 下发给各所述分区平衡子任务中记录的目 的节点。
第五方面的第一种可能实现方式中, 删除所述第二分区平衡子任务集合 与所述当前分区平衡子任务集合中重复的分区平衡子任务。
应用本发明实施例在当前存在分区平衡子任务的情况下, 可以继续下发 分区平衡子任务, 实现了前后分区平衡任务的并行处理。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实
施例或现有技术描述中所需要使用的附图作简单地介绍, 下面描述中的附图 仅仅是本发明的一些实施例, 还可以根据这些附图获得其他的附图。
图 1是一种控制器实施例结构示意图;
图 2是一种分区平衡子任务下发方法实施例流程图;
图 3是一种分区平衡子任务下发装置实施例结构示意图;
图 4是一种分区平衡子任务下发存储系统结构示意图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部 的实施例。 基于本发明中的实施例所获得的所有其他实施例, 都属于本发明 保护的范围。
在由节点与控制器组成的分布式存储系统中, 如果部分节点故障, 那么 这些故障节点上的数据会迁移到其他正常节点上, 从而保证整个系统中数据 的可靠性。 这个迁移任务可以称为分区平衡任务, 分区平衡任务是指在节点 间迁移分区的任务。
现有的数据迁移操作中, 在第一个节点出现故障后, 会执行第一个节点 相应的分区平衡任务; 如果第一个节点的分区平衡任务结束前, 出现第二个 节点出现了故障, 第二个节点的分区平衡任务要等待第一个节点的分区平衡 任务结束后才能执行。
由于分区平衡任务执行的时间很长, 有可能达到几十个小时甚至更长, 在这么长的时间里, 第二节点一直无法执行分区平衡任务, 第二节点上的数 据也一直无法得到恢复 , 这导致了整个分布式存储系统的可靠性严重降低。
本发明实施例中, 存储系统包括控制器和多个节点, 例如包括至少 2个 节点或者包括至少 3 个节点, 这些节点中包括第一节点以及第二节点。 控制 器与存储系统中的节点连接, 对存储节点进行控制。 节点由 CPU、 内存、 硬 盘等存储介质组成, 用于存储数据。 存储节点也可以简称为节点。
节点可以存储数据, 数据可以用 value表示, 标识可以用 key表示, key
和对应的 value的组合称为 key-value。每个节点上有至少一个分区(Partition ), 例如, 整个存储系统被划分为 P0-P19—共 20个分区, 为每个分区划分一定 的 Hash范围, 对数据的 key进行哈希 (Hash )计算, 根据计算出的 Hash值 所属于的 Hash范围, 可以确定把这个 hash值对应的 key-value存储到哪个节 点上。
把 key-value存储到节点后 ,可以对每个分区存储多个,形成一个副本组, 同一个副本组中的副本内容相同, 当其中一个或者多个副本发生数据损坏时, 可以通过余下的任一分区进行恢复, 分区平衡算法可以确定各分区具体属于 哪个节点。 同一个副本组中的副本可以位于不同的节点或者不同机架、机房, 分散存放副本可以提高系统可靠性, 例如, 把节点 1上的分区 10同时存储到 节点 2、 节点 3中。 如果同一个分区存储了 3份, 这种备份方式可以称为 3副 本。 在其他情况下, 一个分区也可以在整个存储系统中唯一, 也就说没有其 他副本。
分区平衡任务是改变分区在节点上分布的任务。 执行分区平衡任务可以 把一个节点上的分区迁移到另外一个节点, 也就是把一个分区内的数据迁移 到另外一个节点。 下面实施例以节点故障触发分区平衡任务进行举例, 通过 迁移重新生成因为节点故障而损失的分区。
在实际情况下, 也可以是其他原因触发, 例如在存储系统中增加了新的 节点进行系统扩容时, 可以触发将原有节点上的部分分区迁移到新增的节点 上。 区别在于, 节点故障触发的分区平衡任务在执行时, 需要找到故障节点 上的分区的副本, 把副本作为迁移分区。 而系统扩容, 没有这个查找副本的 步骤, 直接对迁移分区进行迁移。存储系统中减少节点、或者数据冷热程度、 节点的性能、 节点提供的网络带宽等任一因素发生变化, 也可以触发分区平 衡任务。
图 1是本发明实施例一种控制器 1的结构示意图, 控制器 1与至少 2个 节点 3连接。 控制器包括处理器 11、 内存 12以及接口 13 , 三者相互连接。 接口 13和各个节点 3连接,内存 12用于存储程序,处理器 11用于执行程序,
所述程序代码包括计算机操作指令。 处理器 11执行程序具体用于实现下述实 施例中的方法。
参见图 2, 是本发明实施例一种分区平衡子任务下发方法流程图。 分区平 衡任务的执行过程包括以下步骤。
步骤 11 , 当第一节点发生故障时, 控制器生成第一分区平衡任务, 生成 第一分区平衡任务后, 控制器计算第一目标分区分布信息, 并查询当前分区 分布信息, 根据当前分区分布信息、 第一目标分区分布信息生成第一目标分 区分布信息变化量。 其中, 第一目标分区分布信息变化量是由当前分区分布 信息成为第一目标分区分布信息需要对分区分布信息进行的改变, 第一目标 分区分布信息变化量, 可以由各个节点的节点分区分布信息变化量组成。 各 个节点的节点分区分布信息变化量记录有迁移分区与迁移分区的目的节点的 对应关系, 目的节点是迁移分区需要被迁入的节点。 关于分区分布信息变化 量、 节点分区分布信息变化量, 也可以参考本实施例步骤 15。 本实施例中, 分区分布信息用以描述存储系统中分区在节点的分布, 具体可以是 Key值在 分区内的数据存放在物理节点的分布。 所述当前分区分布信息, 记录有当前 时刻, 各节点与节点上的分区的对应关系; 所述目标分区分布信息, 记录执 行完第一分区平衡任务后, 各节点与节点上的分区的对应关系, 具体而言, 是根据第一分区平衡任务执行完有分区迁移后, 各节点与节点上的分区的对 应关系; 所述分区分布信息变化量中记录有当前分区分布信息成为目标分区 分布信息需要迁移的迁移分区, 以及各迁移分区的目的节点。 其中, 第一目 标分区分布信息, 是需要形成的分区分布信息, 可以根据当前的节点、 分区 分布信息以及节点可用状态等信息通过分区分布信息算法生成的分区分布信 息。 在对第一分区平衡子任务集合中的分区平衡子任务执行过程中, 当前分 区分布信息会逐渐更新, 当所有分区平衡任务执行完成后, 第一目标分区分 布信息会成为当前分区分布信息。 其中, 控制器可以记录各个节点的可用状 态, 状态为可用表示该节点可以提供读写服务; 状态为不可用表示该节点不 可以提供读写服务, 比如硬盘故障、 节点下电等。
步骤 12, 控制器根据分区分布信息变化量, 查找各迁移分区的源节点, 源节点也就是需要迁出迁移分区的节点。 由迁移分区、 迁移分区的源节点、 迁移分区的目的节点生成第一分区平衡子任务集合。 当同一个迁移分区存在 于多个节点中时, 任选一个作为迁移分区源节点。 然后, 把第一分区平衡子 任务集合中的各分区平衡子任务, 发送给分区平衡子任务中记录的目的节点。 第一分区平衡子任务集合, 就是存储系统的分区分布信息从当前分区分布信 息变为第一目标分区分布信息, 所需要执行的分区平衡子任务的集合。 本实 施例中, 第一节点故障后, 控制器记录有第一节点上各个分区的标记, 第一 节点上的分区在其他节点上存在有具有同样标记的分区, 也就是第一节点上 分区的副本, 这些分区也就是迁移分区, 本步骤中, 如果副本不止一个, 则 控制器通过迁移分区的标记查找任一副本所在的节点, 选择其中一个节点作 为源节点。
第一分区平衡子任务集合基于第一分区平衡任务生成, 其中包含至少一 个分区平衡子任务。 每个分区平衡子任务记录有一个迁移分区, 以及这个迁 移分区的源节点、 目的节点。 所述源节点是指迁出数据的节点; 迁移分区是 指源节点上迁出数据的分区; 目的节点是指接收迁移分区的节点。 目的节点 收到分区平衡子任务后, 将源节点上的迁移分区迁入目的节点。 分区平衡任 务生成的所有分区平衡子任务结束后, 可以标记分区平衡任务结束, 分区平 衡子任务的结束方式可以是完成或者终止。
本发明实施例中所说的迁移或者迁出, 是指通过复制的方式生成与迁移 分区相同的新分区, 迁移分区是被复制的分区, 可以保留也可以删除。 例如 如果是因为节点故障触发的迁移, 可以在源节点上保留迁移分区; 因为扩容 而触发的迁移, 可以删除源节点上的迁移分区。
本发明实施例中, 节点分区分布信息组成分区分布信息, 节点分区分布 信息是指一个节点和这个节点上存储的分区的对应关系, 也可以理解成分区 在某个节点中的分布。 例如 <节点 1 ; 分区 0、 分区 100>节点 1上有分区 0、 分区 100这 2个分区; 类似的, <节点 2; 分区 1、 分区 101>表示节点 2上有
分区 1、 分区 101这 2个分区, <节点 3 ; 分区 3、 分区 301>表示节点 3上有 分区 3、 分区 301这 3个分区。 假设节点 1需要下线, 因此触发迁移分区 0、 分区 100 的任务, 根据分区平衡算法, 生成的目标分区分布信息可以包括 2 条节点分区分布信息: <节点 2; 分区 1、 分区 101、 分区 0>、 <节点 3; 分区 3、 分区 301、 分区 100>。
相应的, 每个分区的迁移需要建立一个平衡子任务, 因此可以建立 2个 子任务, 分别是把节点 1上的分区 0迁移到节点 2的分区平衡子任务, 以及 把节点 1上的分区 100迁移到节点 3的分区平衡子任务, 当这两个分区平衡 子任务完成后, 目标分区分布信息成为存储系统中实际分区分布信息, 也就 是当前分区分布信息。 在其他实施例中, 也可以一个分区平衡子任务对多个 分区进行迁移, 例如可以一个分区平衡子任务对一个源节点内的所有迁移分 区进行迁移。 当一个分区平衡子任务中包含多个迁移分区时, 这个分区平衡 子任务记录有各个迁移分区对应的源节点、 目的节点。
当第一节点故障后, 第一节点上的分区不再可用, 查找第一节点上的分 区位于其他节点的副本作为迁移分区。 通过执行分区平衡任务把找到的副本 进行迁移, 生成新的副本, 相当于恢复了第一节点上的分区。
本发明实施例中, 根据第一分区分布信息变化量, 查找可供迁移的的分 区以及分区所在节点, 当可供迁移的分区不止一个时, 任选一个分区作为迁 移分区。 在其他实施例中, 查找可供迁移的分区后, 仅选择数据完整性信息 是完整的分区作为迁移分区, 数据完整性不完整的分区不作为迁移分区。
每个分区可以有数据完整性信息, 这个信息可以记录在控制器中。 数据 完整性信息用于标记分区的数据是否完整。 处于完整状态的分区, 表示这个 分区可以迁移, 这个分区所在的节点可以作为分区平衡子任务的源节点, 缺 省状态可以设置所有分区的数据是完整的; 处于不完整状态的分区, 表示分 区上的数据不完整, 不能迁移, 例如该分区正在生成过程中,在生成完成后, 可以标记这个分区是完整的。
这里对分区的数据完整性举例说明, 假设存在这样一个分区平衡子任务:
从节点 B迁移分区 P的数据到节点 A。 那么在迁移过程中, 节点 A上的分区 P是分区数据不完整的, 因此不能作为其他分区平衡子任务的迁移节点; 但在 迁移结束后, 节点 A上的分区 P是分区数据完整的。
步骤 13 , 收到控制器发送的分区平衡子任务的节点, 也就是分区平衡子 任务中的目的节点执行数据迁移, 按照分区平衡子任务携带的信息, 把源节 点上的迁移分区复制到目标节点。 在本实施例, 第一节点上的分区是迁移分 区, 这个迁移分区在其他节点存在副本, 因此本步骤把第一节点上的分区在 其他节点上的副本复制到目的节点。每个分区平衡子任务的执行过程是: ( 1 ) 目的节点向源节点发送请求消息,请求迁移源节点上的分区 P的数据,分区 P 是第一节点上的一个分区的副本;( 2 )源节点记录属于分区 P的数据 key-value , 因此源节点收到消息后, 查找本身所有数据的 key, 将属于分区 P的所有数据 发给目的节点; (3 ) 目的节点收到来自于源节点的数据后, 将该数据写入目 的节点的磁盘进行存储, 完成迁移。
此外, 本步骤中目的节点收到控制器发送的分区平衡子任务后, 发送响 应消息给控制器, 控制器收到响应消息以后, 把这个分区平衡子任务中的信 息更新到分区分布信息中, 成为当前分区分布信息的一部分。 也就是说不需 要等待分区平衡子任务完成, 就可以把分区分布信息更新成分区平衡子任务 已经完成后的状态。
步骤 14, 控制器监控每个分区平衡子任务的执行情况, 取消对已经执行 完成的分区平衡子任务的监控。 监控方法可以是: 控制器定时向各目的节点 发送查询请求, 如果目的节点的响应消息显示分区平衡子任务执行完成, 那 么控制器标记该分区平衡子任务结束, 不再监控, 并且把这个分区平衡子任 务从分区平衡子任务列表中删除; 如果响应消息显示分区平衡子任务未完成, 则继续监控。
以上是第一分区平衡任务的创建和执行, 如果等待第一分区平衡任务结 束后, 才能执行第二分区平衡任务, 那么在第一分区平衡任务结束之前, 第 二分区平衡任务一直无法执行, 这导致第二分区平衡任务执行等待时间过长,
以及系统可靠性降低。 本发明实施例, 在第一分区平衡任务结束前, 或者说 第一分区平衡子任务集合中的所有子任务结束之前, 开始执行第二分区平衡 任务, 也就是说在本发明实施例中, 两个分区平衡任务可以并行执行。
步骤 15, 第二节点发生故障, 控制器生成第二分区平衡任务。 控制器依 据第二分区平衡任务生成第二目标分区分布信息, 第二目标分区分布信息包 含至少一条节点分区分布信息。 控制器查询当前分区分布信息, 把当前分区 分布信息与第二目标分区分布信息进行比较, 找出由当前分区分布信息成为 目标分区分布信息需要的第二分区分布信息变化量, 分区分布信息变化量由 各个节点的节点分区分布信息变化量组成。 本步骤和步骤 11原理相同, 可以 和步骤 11相互参照。
例如对节点 A而言, 以 R1表示当前分区分布信息中关于节点 A的节点 分区分布信息, R2表示第二目标分区分布信息中关于节点 A的节点分区分布 信息, 那么关于节点 A, 节点分区分布信息变化量 R3=R2-(R2 fl Rl)。
举例:当前分区分布信息中,关于节点 A的节点分区分布信息是 <节点 A; 分区 100、 分区 200、 分区 300、 分区 400>, 第二目标分区分布信息中关于节 点 A的节点分区分布信息是 <节点 A; 分区 300、 分区 400、 分区 500、 分区 600>, 那么按照 R3=R2-(R2 fl Rl)的计算公式, 节点 A的节点分区分布信息变 化量就是<节点 A; 分区 500、 分区 600>。
步骤 15中, 节点分区分布信息变化量 P3的生成有两种方式, 一种是先 生成 P2, 再用公式 Ρ3=Ρ2-(Ρ2 Π Ρ1)删除多余的分区分布信息, 另外一种是先 通过公式 Ρ3=Ρ2-(Ρ2 Π Ρ1)计算出节点分区分布信息变化量, 然后直接生成节 点分区分布信息变化量。 需要说明的是, 由于控制器收到节点对分区平衡子 任务的响应后, 会对当前分区分布信息进行更新, 因此步骤 15中查询到的当 前分区分布信息与步骤 11中查询到的当前分区分布信息不同。
步骤 16, 控制器根据第二分区分布信息变化量, 查找形成第二目标分区 分布信息所需要的迁移分区以及各迁移分区所在节点, 生成第二分区平衡子 任务集合, 第二分区平衡子任务集合就是存储系统的分区分布信息从当前分
区分布信息变为第二目标分区分布信息所需要执行的分区平衡子任务的集合。 本步骤和步骤 12原理相同, 可以和步骤 12相互参照。
本步骤中, 控制器在生成第二分区平衡子任务集合时, 如果有多个候选 分区可供迁移, 那么选择其中一个数据完整性为完整的分区所在的节点作为 源节点, 结合步骤 15中的分区分布信息变化量, 共同生成第二分区平衡子任 务集合。 需要说明的是, 步骤 15和本步骤中的选择完整性为完整的分区所在 的节点作为源节点, 在执行顺序上可以并行, 也可以任意一个先执行。 在因 为节点故障而触发的分区迁移任务中, 下面的步骤用于举例, 介绍步骤 16中 一个具体的分区迁移子任务是如何生成的。
161 )根据副本映射规则找到迁移分区的所有的副本, 比如, 映射规则是 分区 P的副本在分区 P+1和分区 P+2所在节点, 一共 3副本。 那么, 对于分 区 10,其副本所在分区是分区 11和分区 12,找到的副本列表就是 {10,11, 12} , 这 3个副本中任一副本故障, 都可以用余下任一分区进行恢复。
162 ) 步骤 161 找到的副本中, 检测副本所在节点的状态和数据完整性。 如果节点状态是不可用或者副本数据不完整, 那么就不能作为源节点; 如果 节点的状态是可用并且分区的完整性是完整, 那么可以作为源节点。 例如第 一分区平衡子任务集合中, 正在执行的分区平衡子任务对应的迁移分区就是 不完整的分区。 如果分区 10出现故障, 分区 10的 2个副本中, 分区 11是完 整的分区, 分区 12是不完整的分区, 那么分区 11所在的节点作为分区子任 务的源节点, 用分区 11作为分区迁移子任务的迁移分区。
163 )从步骤 15的节点分区分布信息变化量中,可以获知迁移分区 11的: 源节点、 迁移分区、 目的节点, 三者共同组成分区迁移子任务。 第二分区平 衡子任务集合中的分区平衡子任务可以记录在控制器的分区平衡子任务列表 中。 也就是说分区平衡子任务由源节点信息和节点分区分布信息变化量共同 生成。
步骤 17 , 控制器从第一分区平衡子任务集合中删除源节点故障以及目的 节点故障的分区平衡子任务, 因为这些分区平衡子任务都是无法完成的, 这
些源节点故障或者目的节点故障是由于第二节点故障而引起的。 也就是说, 在第二节点发生故障前, 这些分区平衡子任务是可以完成的分区平衡子任务; 在第二节点发生故障后, 这些分区平衡子任务是无法完成的分区平衡子任务。
步骤 18, 删除第二分区平衡子任务集合与当前分区平衡子任务集合中重 复的分区平衡子任务。 其中, 当前分区平衡子任务集合是第一分区平衡子任 务集合中未执行完的分区平衡子任务。 第一分区平衡子任务集合与第二分区 平衡子任务存在相同的分区平衡子任务, 因此本步骤删除多余的分区平衡子 任务,避免分区平衡子任务的重复执行。步骤 17和步骤 18可以只执行一个, 也可以都执行; 如果都执行, 二者没有时间上的先后关系, 可以并行执行, 也可以任一个先执行。
通过步骤 17与步骤 18,实现了第一分区平衡任务与第二分区平衡任务的 合并, 第一分区平衡任务的存在并没有阻止第二分区平衡任务的执行。
步骤 19, 控制器把经过步骤 17、 步骤 18处理后的第二平衡分区子任务 集合中的分区平衡子任务下发给目的节点。
同样的, 这些下发的分区平衡子任务会被各目的节点节点执行, 也会记 录在分区平衡子任务列表中, 由控制器监控完成情况。 控制器以及节点具体 如何处理分区平衡子任务, 可以参照步骤 13以及步骤 14。
步骤 20, 控制器可以把第一分区平衡任务标记为结束, 停止对第一分区 平衡任务的监控。 现有技术中, 每个节点收到分区平衡子任务后会返回一个 响应消息给控制器, 控制器收到所有收到授予一个分区平衡任务的所有子任 务响应消息以后, 才能把这个分区平衡任务标记为结束。 本发明实施例中, 不需要判断是否收到响应消息, 只要执行完步骤 19后, 就可以额把第一分区 平衡任务标记为结束。 本步骤是可选步骤。
可选的, 收到分区平衡子任务的节点, 作为分区平衡子任务的目的节点 执行分区平衡子任务。 具体执行方法参照步骤步骤 13 中的子步骤(1 )、 ( 2 ) 以及 (3 )。
步骤 21 , 所有分区平衡子任务结束后, 控制器可以把第二分区平衡任务
标记为结束, 停止对第二分区平衡任务的监控。 本步骤是可选步骤。
需要说明的是, 由于本发明实施例以 2个分区平衡任务并行执行进行举 例。 当分区平衡任务的数量超过 2个时, 任意两个相邻触发的分区平衡任务 都可以使用本发明实施例提供的方案。 因此, 本发明的方案也适用于多于 2 个分区平衡任务并行执行的情况, 例如 3 个存储控制器先后发生故障。 具体 而言, 当 3 个分区平衡任务依次发生时, 与本实施例基本相似, 相当于在步 骤 20之后,对第三分区平衡任务执行步骤 14…步骤 21 ,原步骤 21不再执行。
仍然参照图 2 , 本发明实施例提供一种分区平衡子任务下发方法,应用于 控制器中, 所述控制器和至少 2个节点组成存储系统, 其中, 每个节点包含 至少一个分区, 其特征在于, 该方法包括: 收到第二分区平衡任务后, 生成 第二分区平衡子任务集合, 所述第二分区平衡子任务集合包括至少一个分区 平衡子任务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁移分区所 在节点、 以及目的节点; 查找当前分区平衡子任务集合, 删除所述第二分区 平衡子任务集合与所述当前分区平衡子任务集合中重复的分区平衡子任务; 把删除重复的分区平衡子任务之后的第二分区平衡子任务集合中各所述分区 平衡子任务, 下发给各所述分区平衡子任务中记录的目的节点。
下发分区平衡子任务之前, 可以进一步包括: 从所述当前分区平衡子任 务中, 删除无法完成的分区平衡子任务, 所述无法完成的分区平衡子任务包 括所述迁移分区所在节点故障的分区平衡子任务、 所述目的节点故障的分区 平衡子任务。
所述根据第二分区平衡任务, 生成第二分区平衡子任务集合, 具体可以 包括: 收到第二分区平衡任务后, 计算存储系统目标分区分布信息, 查找存 储系统当前分区分布信息, 根据所述当前分区分布信息和所述目标分区分布 信息获得分区分布信息变化量, 其中, 所述当前分区分布信息, 记录有各节 点与节点上的分区的对应关系, 所述目标分区分布信息, 记录有进行分区迁 移后各节点与节点上的分区的对应关系, 所述分区分布信息变化量中记录有 当前分区分布信息成为目标分区分布信息需要迁移到的所述迁移分区, 以及
各所述迁移分区的目的节点; 对各所述迁移分区, 选择一个迁移分区所在节 点, 根据各所述迁移分区所在节点和分区分布信息变化量, 生成第二分区平 衡子任务集合。
对各所述迁移分区, 选择一个迁移分区所在节点, 具体可以是: 可供迁 移的分区有多个时, 检测分区数据的完整性, 选择一个数据完整的迁移分区 所在的节点。
生成第二分区平衡子任务集合, 具体可以是: 在第一分区平衡任务结束 前, 计算生成第二分区平衡子任务集合, 其中, 所述当前分区平衡子任务集 合, 是所述第一分区平衡子任务集合中正在执行的分区平衡子任务。
在下发步骤之后, 可以进一步包括: 在收到所述分区平衡子任务的响应 消息之前, 把第一分区平衡子任务标记为已经结束。
在下发步骤之后, 可以进一步包括: 收到分区平衡子任务的节点, 作为 在下发步骤之后, 可以进一步包括: 接收存储节点对所述分区平衡子任 务的响应消息, 把当前分区分布信息更新为分区平衡子任务执行成功后的状 态。
参照图 3 , 本发明实施例还提供一种分区平衡子任务下发装置 2 , 可以应 用上述方法, 该装置例如可以是控制器或者其他具有控制功能的电子设备。 装置 2包括分区平衡子任务删除模块 21、 分区平衡子任务模块 22。 分区平衡 任务下发模块 23。 可选的, 还可以包括分区平衡子任务状态标记模块 24; 可 选的, 还可以包括分区分布信息更新模块 25。
分区平衡子任务生成模块 21 , 用于在收到第二分区平衡任务后, 生成第 二分区平衡子任务集合, 所述第二分区平衡子任务集合包括至少一个分区平 衡子任务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁移分区所在 节点、 以及目的节点。
分区平衡子任务删除模块 22, 和所述分区平衡子任务生成模块 21连接, 用于查找当前分区平衡子任务集合, 删除所述第二分区平衡子任务集合与所
述当前分区平衡子任务集合中重复的分区平衡子任务。
分区平衡子任务下发模块 23 , 和所述分区平衡子任务删除模块 2连接, 用于把把删除重复的分区平衡子任务之后的第二分区平衡子任务集合中各所 述分区平衡子任务, 下发给各所述分区平衡子任务中记录的目的节点。
分区平衡子任务删除模块, 进一步可以用于: 从所述当前分区平衡子任 务中, 删除无法完成的分区平衡子任务, 所述无法完成的分区平衡子任务包 括所述迁移分区所在节点故障的分区平衡子任务、 所述目的节点故障的分区 平衡子任务。
分区平衡子任务生成模块, 具体可以用于: 收到第二分区平衡任务后, 计算存储系统目标分区分布信息, 查找存储系统当前分区分布信息, 根据所 述当前分区分布信息和所述目标分区分布信息获得分区分布信息变化量, 其 中, 所述当前分区分布信息, 记录有各节点与节点上的分区的对应关系, 所 述目标分区分布信息, 记录有进行分区迁移后各节点与节点上的分区的对应 关系, 所述分区分布信息变化量中记录有当前分区分布信息成为目标分区分 布信息需要迁移到的所述迁移分区, 以及各所述迁移分区的目的节点; 对各 所述迁移分区, 选择一个迁移分区所在节点, 根据各所述迁移分区所在节点 和分区分布信息变化量, 生成第二分区平衡子任务集合。
分区平衡子任务生成模块对各所述迁移分区, 选择一个迁移分区所在节 点, 具体是: 可供迁移的分区有多个时, 检测分区数据的完整性, 选择一个 数据完整的迁移分区所在的节点。
分区平衡子任务生成模块, 具体用于: 在第一分区平衡任务结束前, 在 收到第二分区平衡任务后, 计算生成第二分区平衡子任务集合, 其中, 所述 当前分区平衡子任务集合, 是所述第一分区平衡子任务集合中正在执行的分 区平衡子任务。
装置 2可以进一步包括, 分区平衡子任务状态标记模块 24 , 和分区平衡 下发模块连接, 用于在下发各所述分区平衡子任务之后, 在收到所述分区平 衡子任务的响应消息之前, 把第一分区平衡任务标记为已经结束。
装置 2可以进一步包括分区分布信息更新模块 25 , 和存储节点连接, 用 于接收存储节点对所述分区平衡子任务的响应消息, 把当前分区分布信息更 新为分区平衡子任务执行成功后的状态。
参照图 4 , 本发明实施例还提供一种存储系统, 包括上述的分区平衡子任 务下发装置以及至少 2个节点 3 , 所述节点 3用于, 在接收到所述分区平衡子 通过以上的实施方式的描述, 可以清楚地了解到本发明可借助软件加必 需的通用硬件的方式来实现, 当然也可以通过硬件, 但很多情况下前者是更 佳的实施方式。 基于这样的理解, 本发明的技术方案本质上或者说对现有技 术做出贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品存储 在可读取的存储介质中, 如计算机的软盘, 硬盘或光盘等, 包括若干指令用 以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)执 行本发明各个实施例所述的方法。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何人员在本发明揭露的技术范围内, 想到的变化或替换, 都应涵盖 在本发明的保护范围之内。 因此, 本发明的保护范围应以所述权利要求的保 护范围为准。
Claims
1、 一种分区平衡子任务下发方法, 应用于控制器中, 所述控制器和至少 2 个节点组成存储系统, 其中, 每个节点包含至少一个分区, 其特征在于, 该方 法包括:
收到第二分区平衡任务后, 生成第二分区平衡子任务集合, 所述第二分区 平衡子任务集合包括至少一个分区平衡子任务, 每个所述分区平衡子任务记录 有: 迁移分区、 所述迁移分区所在节点、 以及目的节点;
查找当前分区平衡子任务集合, 删除所述第二分区平衡子任务集合与所述 当前分区平衡子任务集合中重复的分区平衡子任务;
把删除重复的分区平衡子任务之后的第二分区平衡子任务集合中各所述分 区平衡子任务, 下发给各所述分区平衡子任务中记录的目的节点。
2、 根据权利要求 1 所述的方法, 其特征在于, 下发分区平衡子任务之前, 进一步包括:
从所述当前分区平衡子任务中, 删除无法完成的分区平衡子任务, 所述无 所述目的节点故障的分区平衡子任务。
3、根据权利要求 1所述的方法,其特征在于,所述根据第二分区平衡任务, 生成第二分区平衡子任务集合, 具体包括:
收到第二分区平衡任务后, 计算存储系统目标分区分布信息, 查找存储系 统当前分区分布信息, 根据所述当前分区分布信息和所述目标分区分布信息获 得分区分布信息变化量, 其中, 所述当前分区分布信息, 记录有各节点与节点 上的分区的对应关系, 所述目标分区分布信息, 记录有进行分区迁移后各节点 与节点上的分区的对应关系, 所述分区分布信息变化量中记录有当前分区分布 信息成为目标分区分布信息需要迁移到的所述迁移分区, 以及各所述迁移分区 的目的节点;
对各所述迁移分区, 选择一个迁移分区所在节点, 根据各所述迁移分区所 在节点和分区分布信息变化量, 生成第二分区平衡子任务集合。
4、 根据权利要求 3所述的方法, 其特征在于, 所述对各所述迁移分区, 选 择一个迁移分区所在节点, 具体是:
可供迁移的分区有多个时, 检测分区数据的完整性, 选择一个数据完整的 迁移分区所在的节点。
5、 根据权利要求 1所述的方法, 其特征在于, 所述生成第二分区平衡子任 务集合, 具体是:
在第一分区平衡任务结束前, 计算生成第二分区平衡子任务集合, 其中, 所述当前分区平衡子任务集合, 是所述第一分区平衡子任务集合中正在执行的 分区平衡子任务。
6、 根据权利要求 1 所述的方法, 其特征在于, 所述方法在下发步骤之后, 进一步包括:
在收到所述分区平衡子任务的响应消息之前, 把第一分区平衡子任务标记 为已经结束。
7、 根据权利要求 1 所述的方法, 其特征在于, 所述方法在下发步骤之后, 进一步包括:
收到分区平衡子任务的节点, 作为分区平衡子任务的目的节点执行分区平 衡子任务。
8、 根据权利要求 1所述方法, 其特征在于, 述方法在下发步骤之后, 进一 步包括:
接收存储节点对所述分区平衡子任务的响应消息, 把当前分区分布信息更 新为分区平衡子任务执行成功后的状态。
9、 一种分区平衡子任务下发装置, 其特征在于, 该装置包括:
分区平衡子任务生成模块, 用于在收到第二分区平衡任务后, 生成第二分 区平衡子任务集合, 所述第二分区平衡子任务集合包括至少一个分区平衡子任 务, 每个所述分区平衡子任务记录有: 迁移分区、 所述迁移分区所在节点、 以 及目的节点;
分区平衡子任务删除模块, 查找当前分区平衡子任务集合, 删除所述第二
分区平衡子任务集合与所述当前分区平衡子任务集合中重复的分区平衡子任务; 分区平衡子任务下发模块, 把删除重复的分区平衡子任务之后的第二分区 平衡子任务集合中各所述分区平衡子任务, 下发给各所述分区平衡子任务中记 录的目的节点。
10、 根据权利要求 9 所述的装置, 其特征在于, 所述分区平衡子任务删除 模块, 进一步用于:
从所述当前分区平衡子任务中, 删除无法完成的分区平衡子任务, 所述无 所述目的节点故障的分区平衡子任务。
11、 根据权利要求 9 所述的装置, 其特征在于, 所述分区平衡子任务生成 模块, 具体用于:
收到第二分区平衡任务后, 计算存储系统目标分区分布信息, 查找存储系 统当前分区分布信息, 根据所述当前分区分布信息和所述目标分区分布信息获 得分区分布信息变化量, 其中, 所述当前分区分布信息, 记录有各节点与节点 上的分区的对应关系, 所述目标分区分布信息, 记录有进行分区迁移后各节点 与节点上的分区的对应关系, 所述分区分布信息变化量中记录有当前分区分布 信息成为目标分区分布信息需要迁移到的所述迁移分区, 以及各所述迁移分区 的目的节点;
对各所述迁移分区, 选择一个迁移分区所在节点, 根据各所述迁移分区所 在节点和分区分布信息变化量, 生成第二分区平衡子任务集合。
12、 根据权利要求 11所述的装置, 其特征在于, 所述分区平衡子任务生成 模块对各所述迁移分区, 选择一个迁移分区所在节点, 具体是:
可供迁移的分区有多个时, 检测分区数据的完整性, 选择一个数据完整的 迁移分区所在的节点。
13、 根据权利要求 9 所述的装置, 其特征在于, 所述分区平衡子任务生成 模块, 具体用于是:
在第一分区平衡任务结束前, 在收到第二分区平衡任务后, 计算生成第二
分区平衡子任务集合, 其中, 所述当前分区平衡子任务集合, 是所述第一分区 平衡子任务集合中正在执行的分区平衡子任务。
14、 根据权利要求 9 所述的装置, 其特征在于, 所述装置进一步包括, 分 区平衡子任务状态标记模块:
在下发各所述分区平衡子任务之后, 在收到所述分区平衡子任务的响应消 息之前, 把第一分区平衡任务标记为已经结束。
15、 根据权利要求 9所述的装置, 其特征在于, 所述装置进一步包括: 分区分布信息更新模块, 用于接收存储节点对所述分区平衡子任务的响应 消息, 把当前分区分布信息更新为分区平衡子任务执行成功后的状态。
16、 一种存储系统, 其特征在于:
包括根据权利要求 9-15中任一所述的分区平衡子任务下发装置以及至少 2 个节点, 其中, 所述节点用于, 在接收到所述分区平衡子任务后, 作为分区平
17、 一种控制器, 所述控制器和至少 2 个节点组成存储系统, 其中, 每个 节点包含至少一个分区, 其特征在于, 该控制器用于执行以下步骤:
收到第二分区平衡任务后, 生成第二分区平衡子任务集合, 所述第二分区 平衡子任务集合包括至少一个分区平衡子任务, 每个所述分区平衡子任务记录 有: 迁移分区、 所述迁移分区所在节点、 以及目的节点;
查找当前分区平衡子任务集合, 删除所述第二分区平衡子任务集合与所述 当前分区平衡子任务集合中重复的分区平衡子任务;
把删除重复的分区平衡子任务之后的第二分区平衡子任务集合中各所述分 区平衡子任务, 下发给各所述分区平衡子任务中记录的目的节点。
18、 根据权利要求 17所述的控制器, 其特征在于, 下发分区平衡子任务之 前, 进一步包括:
从所述当前分区平衡子任务中, 删除无法完成的分区平衡子任务, 所述无 所述目的节点故障的分区平衡子任务。
19、 根据权利要求 17所述的控制器, 其特征在于, 所述根据第二分区平衡 任务, 生成第二分区平衡子任务集合, 具体包括:
收到第二分区平衡任务后, 计算存储系统目标分区分布信息, 查找存储系 统当前分区分布信息, 根据所述当前分区分布信息和所述目标分区分布信息获 得分区分布信息变化量, 其中, 所述当前分区分布信息, 记录有各节点与节点 上的分区的对应关系, 所述目标分区分布信息, 记录有进行分区迁移后各节点 与节点上的分区的对应关系, 所述分区分布信息变化量中记录有当前分区分布 信息成为目标分区分布信息需要迁移到的所述迁移分区, 以及各所述迁移分区 的目的节点;
对各所述迁移分区, 选择一个迁移分区所在节点, 根据各所述迁移分区所 在节点和分区分布信息变化量, 生成第二分区平衡子任务集合。
20、根据权利要求 17所述的控制器,其特征在于,所述对各所述迁移分区, 选择一个迁移分区所在节点, 具体是:
可供迁移的分区有多个时, 检测分区数据的完整性, 选择一个数据完整的 迁移分区所在的节点。
21、 根据权利要求 17所述的控制器, 其特征在于, 所述生成第二分区平衡 子任务集合, 具体是:
在第一分区平衡任务结束前, 计算生成第二分区平衡子任务集合, 其中, 所述当前分区平衡子任务集合, 是所述第一分区平衡子任务集合中正在执行的 分区平衡子任务。
22、根据权利要求 17所述的控制器,其特征在于,所述控制器在下发之后, 进一步用于:
在收到所述分区平衡子任务的响应消息之前, 把第一分区平衡子任务标记 为已经结束。
23、根据权利要求 17所述的控制器,其特征在于,所述控制器在下发之后, 进一步用于:
接收存储节点对所述分区平衡子任务的响应消息, 把当前分区分布信息更
新为分区平衡子任务执行成功后的状态。
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015523391A JP5914761B2 (ja) | 2013-06-29 | 2013-06-29 | パーティション・バランシング・サブタスクを発行するための方法、装置およびシステム |
| PCT/CN2013/078510 WO2014205847A1 (zh) | 2013-06-29 | 2013-06-29 | 一种分区平衡子任务下发方法、装置与系统 |
| CN201380000878.9A CN103718533B (zh) | 2013-06-29 | 2013-06-29 | 一种分区平衡子任务下发方法、装置与系统 |
| EP13806031.4A EP3015998B1 (en) | 2013-06-29 | 2013-06-29 | Zoning balance subtask delivering method, apparatus and system |
| US14/136,007 US9286113B2 (en) | 2013-06-29 | 2013-12-20 | Method, apparatus, and system for issuing partition balancing subtask |
| US14/988,952 US9405590B2 (en) | 2013-06-29 | 2016-01-06 | Method, apparatus, and system for issuing partition balancing subtask |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2013/078510 WO2014205847A1 (zh) | 2013-06-29 | 2013-06-29 | 一种分区平衡子任务下发方法、装置与系统 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/136,007 Continuation US9286113B2 (en) | 2013-06-29 | 2013-12-20 | Method, apparatus, and system for issuing partition balancing subtask |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014205847A1 true WO2014205847A1 (zh) | 2014-12-31 |
Family
ID=50409504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2013/078510 Ceased WO2014205847A1 (zh) | 2013-06-29 | 2013-06-29 | 一种分区平衡子任务下发方法、装置与系统 |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US9286113B2 (zh) |
| EP (1) | EP3015998B1 (zh) |
| JP (1) | JP5914761B2 (zh) |
| CN (1) | CN103718533B (zh) |
| WO (1) | WO2014205847A1 (zh) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9674193B1 (en) | 2013-07-30 | 2017-06-06 | Juniper Networks, Inc. | Aggregation and disbursement of licenses in distributed networks |
| JP6461167B2 (ja) | 2014-01-21 | 2019-01-30 | オラクル・インターナショナル・コーポレイション | アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法 |
| US11477278B2 (en) | 2014-06-24 | 2022-10-18 | Oracle International Corporation | System and method for supporting partitions in a multitenant application server environment |
| US10185730B2 (en) * | 2014-12-31 | 2019-01-22 | Nexenta Systems, Inc. | Methods and systems for key-value-tuple-encoded storage |
| CN104702693B (zh) * | 2015-03-19 | 2018-01-23 | 华为技术有限公司 | 两节点系统分区的处理方法和节点 |
| CN107015999B (zh) * | 2016-01-28 | 2020-11-03 | 创新先进技术有限公司 | 一种基于分布式环境的信息发送方法及装置 |
| CN105760431A (zh) * | 2016-01-29 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种文件块的迁移方法和装置 |
| US9900378B2 (en) * | 2016-02-01 | 2018-02-20 | Sas Institute Inc. | Node device function and cache aware task assignment |
| JP6701890B2 (ja) * | 2016-03-31 | 2020-05-27 | 日本電気株式会社 | 分散ファイル管理装置、分散ファイル管理方法、及びプログラム |
| US9927992B2 (en) * | 2016-08-19 | 2018-03-27 | Sap Se | Segmented database migration |
| US11138017B2 (en) | 2016-09-16 | 2021-10-05 | Oracle International Corporation | System and method for partition administrative targeting in an application server environment |
| CN107153512B (zh) * | 2017-04-01 | 2020-05-08 | 华为技术有限公司 | 一种数据迁移方法和装置 |
| US11016954B1 (en) * | 2017-09-01 | 2021-05-25 | Amazon Technologies, Inc. | Distributed data set extraction for migration |
| US11138213B2 (en) | 2019-04-10 | 2021-10-05 | Snowflake Inc. | Internal resource provisioning in database systems |
| CN115113798B (zh) * | 2021-03-17 | 2024-03-19 | 中国移动通信集团山东有限公司 | 一种应用于分布式存储的数据迁移方法、系统及设备 |
| US11842063B2 (en) | 2022-03-25 | 2023-12-12 | Ebay Inc. | Data placement and recovery in the event of partition failures |
| US20250392639A1 (en) * | 2024-06-20 | 2025-12-25 | International Business Machines Corporation | Data migration to cloud based on local space |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120179771A1 (en) * | 2011-01-11 | 2012-07-12 | Ibm Corporation | Supporting autonomous live partition mobility during a cluster split-brained condition |
| CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
| CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040260862A1 (en) * | 2003-06-20 | 2004-12-23 | Eric Anderson | Adaptive migration planning and execution |
| JP4900784B2 (ja) * | 2006-04-13 | 2012-03-21 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのデータ移行方法 |
| US8271987B1 (en) * | 2007-08-01 | 2012-09-18 | Amazon Technologies, Inc. | Providing access to tasks that are available to be performed |
| JP4990322B2 (ja) * | 2009-05-13 | 2012-08-01 | 株式会社日立製作所 | データ移動管理装置及び情報処理システム |
| US8392661B1 (en) * | 2009-09-21 | 2013-03-05 | Tilera Corporation | Managing cache coherence |
| JP5564882B2 (ja) * | 2009-10-05 | 2014-08-06 | コニカミノルタ株式会社 | 電子文書管理装置、画像形成装置およびプログラム |
| US8676753B2 (en) * | 2009-10-26 | 2014-03-18 | Amazon Technologies, Inc. | Monitoring of replicated data instances |
| US8516492B2 (en) * | 2010-06-11 | 2013-08-20 | International Business Machines Corporation | Soft partitions and load balancing |
| US8706697B2 (en) * | 2010-12-17 | 2014-04-22 | Microsoft Corporation | Data retention component and framework |
| US8775628B2 (en) * | 2011-08-31 | 2014-07-08 | Metaswitch Networks Ltd. | Load balancing for SIP services |
| CN103164167B (zh) * | 2011-12-15 | 2016-03-23 | 深圳市腾讯计算机系统有限公司 | 一种数据迁移方法及装置 |
| WO2013121460A1 (en) * | 2012-02-16 | 2013-08-22 | Hitachi, Ltd. | File server apparatus, information system, and method for controlling file server apparatus |
| US20130332608A1 (en) * | 2012-06-06 | 2013-12-12 | Hitachi, Ltd. | Load balancing for distributed key-value store |
| CN103229487B (zh) | 2012-12-27 | 2015-09-09 | 华为技术有限公司 | 分布式存储系统中的分区平衡方法、装置及服务器 |
| US9053167B1 (en) * | 2013-06-19 | 2015-06-09 | Amazon Technologies, Inc. | Storage device selection for database partition replicas |
-
2013
- 2013-06-29 EP EP13806031.4A patent/EP3015998B1/en active Active
- 2013-06-29 WO PCT/CN2013/078510 patent/WO2014205847A1/zh not_active Ceased
- 2013-06-29 CN CN201380000878.9A patent/CN103718533B/zh active Active
- 2013-06-29 JP JP2015523391A patent/JP5914761B2/ja active Active
- 2013-12-20 US US14/136,007 patent/US9286113B2/en active Active
-
2016
- 2016-01-06 US US14/988,952 patent/US9405590B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120179771A1 (en) * | 2011-01-11 | 2012-07-12 | Ibm Corporation | Supporting autonomous live partition mobility during a cluster split-brained condition |
| CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
| CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US9286113B2 (en) | 2016-03-15 |
| CN103718533B (zh) | 2015-06-10 |
| US20160117197A1 (en) | 2016-04-28 |
| JP5914761B2 (ja) | 2016-05-11 |
| EP3015998A1 (en) | 2016-05-04 |
| JP2015522891A (ja) | 2015-08-06 |
| EP3015998B1 (en) | 2018-03-28 |
| US20150007183A1 (en) | 2015-01-01 |
| CN103718533A (zh) | 2014-04-09 |
| EP3015998A4 (en) | 2016-05-04 |
| US9405590B2 (en) | 2016-08-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2014205847A1 (zh) | 一种分区平衡子任务下发方法、装置与系统 | |
| CN103354923B (zh) | 一种数据重建方法、装置和系统 | |
| CN109729129B (zh) | 存储集群系统的配置修改方法、存储集群及计算机系统 | |
| JP2021002369A (ja) | 索引更新パイプライン | |
| WO2016070375A1 (zh) | 一种分布式存储复制系统和方法 | |
| WO2020010503A1 (zh) | 基于多层一致性哈希的分布式数据存储方法与系统 | |
| CN112764968B (zh) | 数据处理方法、装置、设备及存储介质 | |
| WO2014101044A1 (zh) | 分布式存储系统中的分区平衡方法、装置及服务器 | |
| JP2019101703A (ja) | 記憶システム及び制御ソフトウェア配置方法 | |
| JP2004334574A (ja) | ストレージの運用管理プログラム、運用管理方法及び管理計算機 | |
| JP2016524750A5 (zh) | ||
| US20140059315A1 (en) | Computer system, data management method and data management program | |
| JPWO2014170952A1 (ja) | 計算機システム、計算機システム管理方法及びプログラム | |
| CN113986450B (zh) | 一种虚拟机备份方法及装置 | |
| CN111597270A (zh) | 数据同步方法、装置、设备及计算机存储介质 | |
| CN112068992B (zh) | 一种远程数据复制方法、存储设备及存储系统 | |
| CN105740049B (zh) | 一种控制方法及装置 | |
| CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
| CN109407975B (zh) | 写数据方法与计算节点以及分布式存储系统 | |
| WO2014142217A1 (ja) | 情報処理システム、及びアプリケーションの移転方法 | |
| WO2015196692A1 (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
| CN110858168B (zh) | 集群节点故障处理方法、装置及集群节点 | |
| JP2012022379A (ja) | 分散トランザクション処理システム、装置、方法およびプログラム | |
| CN111400098A (zh) | 一种副本管理方法、装置、电子设备及存储介质 | |
| CN119537101A (zh) | 数据库节点恢复方法、装置、计算机设备、介质和产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENP | Entry into the national phase |
Ref document number: 2015523391 Country of ref document: JP Kind code of ref document: A |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13806031 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |