CN103229151B - 一种分区扩展方法及装置 - Google Patents

一种分区扩展方法及装置 Download PDF

Info

Publication number
CN103229151B
CN103229151B CN201280002874.XA CN201280002874A CN103229151B CN 103229151 B CN103229151 B CN 103229151B CN 201280002874 A CN201280002874 A CN 201280002874A CN 103229151 B CN103229151 B CN 103229151B
Authority
CN
China
Prior art keywords
partition
data
partitions
physical node
average value
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
Application number
CN201280002874.XA
Other languages
English (en)
Other versions
CN103229151A (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 CN103229151A publication Critical patent/CN103229151A/zh
Application granted granted Critical
Publication of CN103229151B publication Critical patent/CN103229151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种分区扩展方法及装置,涉及存储技术领域,可以在分布式存储***扩容时,增加物理节点上中的分区数量,从而保证分布式存储***的扩展性。具体方案为:获取分布式存储***中所有物理节点中分区数量的平均值;若分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;在预存的分布式哈希表DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。本发明用于分布式存储***扩容的过程中。

Description

一种分区扩展方法及装置
技术领域
本发明涉及存储技术领域,尤其涉及一种分区扩展方法及装置。
背景技术
分布式存储***中,一般使用DHT(Distributed Hash Table,分布式哈希表)来决定数据存放位置。即通过一个哈希Hash函数计算Hash值,根据Hash值将数据映射到一个Hash空间,Hash空间是一个首尾相连的环状空间,Hash环可分成若干等份,每份称为一个分区,再将分区平均分配到各个物理节点上,同时,建立数据到分区以及分区到物理节点的映射关系并存储在DHT中。其中,数据的读写、分布式集群的扩容、故障处理等都依赖于DHT的变动。因此,DHT需要达到负载均匀、可靠性良好、节点上的数据存储方式有利于数据迁移、扩展性良好(即***可以进行多次扩容)的目标。
现有技术中,在分布式存储***中增设新的物理节点,即增大物理节点的数量可以实现***的扩容。具体的扩容方法可以包括:在***中增设新的物理节点,并移动原有物理节点上的分区至新的物理节点,从而进行分布式存储***的扩容。其中,物理节点上的分区数量大致相同。
在实现上述***扩容的过程中,发明人发现现有技术中至少存在如下问题:如果分布式存储***经过多次扩容,物理节点上的分区数量会越来越少,则会影响***扩容(例如,当每个物理节点上仅有4个分区时,***最大只能扩容到原容量的4倍),导致分布式存储***的扩展性较差。
发明内容
本发明的实施例提供一种分区扩展方法及装置,可以在分布式存储***扩容时,增加物理节点上中的分区数量,从而保证分布式存储***的扩展性。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种分区扩展方法,包括:
获取分布式存储***中所有物理节点中分区数量的平均值;
若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;
在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系。
结合第一方面,在一种可能的实现方式中,在所述对各个物理节点中的分区数量进行倍增后,所述方法还包括:
获取所述各个物理节点中的各个分区中的数据的哈希值;
获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值;
根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述对各个物理节点中的分区数量进行倍增,包括:
将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述在预存的分布式哈希表DHT中增设所述分区对应的新分区与所述分区所在的物理节点的映射关系后,所述方法还包括:
获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值;
若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增;其中,每次倍增的倍数相同。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述获取分布式存储***中所有物理节点中分区数量的平均值,包括:
周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,
响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
本发明实施例的第二方面,还提供一种分区扩展装置,包括:
第一获取单元,用于获取分布式存储***中所有物理节点中分区数量的平均值;
第一倍增单元,用于若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;
映射单元,用于在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系。
结合第二方面,在一种可能的实现方式中,所述分区扩展装置,还包括:
第二获取单元,用于在所述第一倍增单元对所述各个物理节点中的分区数量进行倍增后,获取所述各个物理节点中的各个分区中的数据的哈希值;
第三获取单元,用于获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值;
迁移单元,用于根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一倍增单元,还用于将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述分区扩展装置,还包括:
第四获取单元,用于在所述映射单元在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系后,获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值;
第二倍增单元,用于若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增;其中,每次倍增的倍数相同。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一获取单元,还用于周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,
响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
本发明实施例提供的分区扩展方法及装置,可以获取分布式存储***中所有物理节点中分区数量的平均值,若分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增,并在预存的分布式哈希表DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。与现有技术中,由于物理节点中分区数量较少导致分布式存储***的扩展性较差相比,可以在分布式存储***扩容时,若分区数量小于预设值,则执行分区数量的倍增,从而可以保证分布式存储***的扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中的一种分区扩展方法流程图;
图2为本发明实施例2中的一种分区扩展方法流程图;
图3为本发明实施例3中的一种分区扩展装置组成示意图;
图4为本发明实施例3中的另一种分区扩展装置组成示意图;
图5为本发明实施例4中的一种分区扩展装置组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种分区扩展方法,如图1所示,包括:
101、分区扩展装置获取分布式存储***中所有物理节点中分区数量的平均值。
其中,分布式存储***在使用分布式哈希表(Distributed HashTable,DHT)存储数据时,可以根据不同数据的数据标识通过一个哈希函数计算出该数据标识对应的数据的哈希值Hash,根据该哈希值将数据映射到一个哈希空间,哈希空间是一个首尾相连的环状空间,哈希环可分成若干等份,每份称为一个分区,然后将分区平均分配到各个物理节点上。其中,物理节点可以是分布式存储***中的物理地址,分布式存储***可以将其物理地址划分成多个地址段,每一段物理地址为一个物理节点。
分区扩展装置获取分布式存储***中的物理节点中分区数量的平均值的方法可以包括:分区扩展装置周期性获取分布式存储***中所有物理节点中分区数量的平均值;或者,分区扩展装置响应于用户的触发指令,获取分布式存储***中所有物理节点中分区数量的平均值。具体的,分区扩展装置可以预先设置一个获取周期,并根据该周期自发的获取分布式存储***中所有物理节点中分区数量的平均值;或者,在进行分布式***扩容时,分区扩展装置接收用户的触发指令,响应于该触发指令,以获取分布式存储***中所有物理节点中分区数量的平均值。
102、若分区数量的平均值小于预设阈值,分区扩展装置则对各个物理节点中的分区数量进行倍增。
其中,预设阈值可以为满足分布式存储***进行至少一次扩容时,分布式存储***中的所有物理节点中的分区数量的平均值。
其中,在分区扩展装置对各个物理节点中的分区数量进行倍增后,本发明实施例的方法还包括:分区扩展装置获取各个物理节点中的各个分区中的数据的哈希值;分区扩展装置获取数据的哈希值与数据所在的物理节点中扩展后得到的分区数量取模所得的模值;分区扩展装置根据数据的模值确定数据迁移的目的分区,若目的分区和数据当前所在分区不同,分区扩展装置则将数据迁移到所述目的分区。
103、分区扩展装置在预存的DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。
其中,分布式存储***中可以使用DHT决定数据存放位置。即DHT可以存储数据标识到分区的映射关系,以及分区到物理节点的映射关系,因此,分区扩展装置对各个物理节点中的分区数量进行倍增后,还需要在预存的DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。
本发明实施例提供的分区扩展方法,可以获取分布式存储***中所有物理节点中分区数量的平均值,若分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增,并在预存的分布式哈希表DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。与现有技术中,由于物理节点中分区数量较少导致分布式存储***的扩展性较差相比,可以在分布式存储***扩容时,若分区数量小于预设值,则执行分区数量的倍增,从而可以保证分布式存储***的扩展性。
实施例2
本发明实施例提供一种分区扩展方法,如图2所示,包括:
201、分区扩展装置获取分布式存储***中所有物理节点中分区数量的平均值。
示例性的,分区扩展装置获取分布式存储***中所有物理节点中分区数量的平均值的方法具体可以是:分区扩展装置在预存的DHT中查询分布式存储***中的物理节点的数量和所有的物理节点中的分区的总数;分区扩展装置根据物理节点的数量和所有的物理节点中的分区的总数,计算物理节点中的分区数量的平均值。
其中,物理节点的数量即分布式存储***中的物理节点的总数。分区扩展装置根据物理节点的数量和所有的物理节点的分区的总数,计算物理节点的分区的数量的平均值的方法具体可以是:分区扩展装置采用所有的物理节点的分区的总数除以物理节点的数量所得的商值作为物理节点中的分区数量的平均值。例如,若物理节点的数量为A,所有的物理节点的分区的总数为B,物理节点的分区的数量的平均值为C,则物理节点的数量、所有的物理节点的分区的总数以及物理节点的分区的数量的平均值应该满足公式:C=A/B。
进一步的,在本实施例的一种应用场景中,由于分布式存储***在使用DHT进行数据存储时,物理节点上的分区数量大致相同,因此,分区扩展装置也可以在预存的DHT中查询分布式存储***中任意一个物理节点中的分区数量,将该物理节点中分区的数量作为分布式存储***中所有物理节点中分区数量的平均值。
202、分区扩展装置判断分区数量的平均值是否低于预设阈值,若分区数量的平均值低于预设阈值,则执行步骤203;若分区数量的平均值不低于预设阈值,则执行步骤211。
203、分区扩展装置对各个物理节点中的分区数量进行倍增。
其中,分区扩展装置对各个物理节点中的分区数量进行倍增苦于包括:分区扩展装置将各个物理节点中的分区数量至少倍增至分区数量的2倍。
具体的,分区扩展装置可以将预存的DHT中的各个物理节点中的分区数量修改为各个物理节点中的分区数量的至少2倍。
需要说明的是,一般情况下,分区扩展装置对各个物理节点中的分区数量进行倍增时,分区数量的倍数都为2。当然,分区扩展装置也可以对各个物理节点中的分区数量3倍,甚至更多倍数的扩展。本发明实施例中以分区扩展装置对各个物理节点中的分区数量进行2倍扩展为例,但并不限制分区扩展装置对各个物理节点中的分区数量进行倍增的分区数量倍增倍数。
204、分区扩展装置获取各个物理节点中的各个分区中的数据的哈希值。
具体的,分区扩展装置可以根据各个分区中的数据的标识在预存的DHT中查询各个物理节点中的各个分区中的数据的哈希值。一个分区中不同的数据的哈希值不同。例如,分区A中包含数据1、数据2和数据3。数据1的数据标识为a,哈希值为Hash1;数据2的数据标识为b,哈希值为Hash2;数据3的数据标识为c,哈希值为Hash3。
205、分区扩展装置获取数据的哈希值与数据所在的物理节点中扩展后得到的分区数量取模所得的模值。
其中,数据所在的物理节点中扩展后得到的分区数量为该数据所在物理节点中扩展前的分区数量与分区扩展装置对各个物理节点中的分区数量进行倍增的倍数的乘积。
示例性的,若数据K的哈希值为Hashk,数据K所在的物理节点中的分区数量为N,分区扩展装置对各个物理节点中的分区数量进行n倍倍增,则数据K所在的物理节点中扩展后得到的分区数量为n×N,则数据K的哈希值与数据K所在的物理节点中扩展后得到的分区数量取模所得的模值xk可以根据公式:xk=Hashk%(n×N)计算得到。
206、分区扩展装置根据数据的模值确定数据迁移的目的分区,若目的分区和数据当前所在分区不同,则将数据迁移到目的分区。
其中,分布式存储***存储数据时,可以根据一个哈希函数计算待存储数据的哈希值Hash,然后根据各个待存储数据的哈希值和分布式存储***中的分区总数将待存储数据分配至各个分区中进行存储,然后将分布式存储***中的分区相对均匀的分配到各个物理节点中。
示例性的,若一些数据的哈希值Hash分别为45、46、47、47……75,分区数量为N,则将各个数据的哈希值与分区数量取余所得结果相同的数据分配到一个分区中,如公式Hash%N。当N=3时,这些数据的哈希值与分区数量取余所得余数分别为0、1、2、0、1、2、0、1、2、0、1、2……0、1、2、0。根据其取余所得余数可以将这些数据分配至三个分区中。
分区1(余数为0):45、48、51、54、57、60、63、66、69、72、75。
分区2(余数为1):46、49、52、55、58、61、64、67、70、73。
分区3(余数为2):47、50、53、56、59、62、65、68、71、74。
示例性的,以上述分区1为例,进行分区扩展。此时,分区数量N为3,当分区数量倍增的倍数n=2时,分区1所在的物理节点中扩展后得到的分区数量为2×3,分区1中的各个数据的模值分别为:x45=45%(2×3)=3、x48=48%(2×3)=0、x51=51%(2×3)=3、x54=54%(2×3)=0、x57=57%(2×3)=3……x72=72%(2×3)=0、x75=75%(2×3)=3。
具体的,若分区数量倍增的倍数n=2,则分区扩展装置可以将模值为3的数据迁移至该数据所在物理节点中新增加的分区中,将模值为0的数据保留在原分区中;例如,分区扩展装置可以将x45=45%(2×3)=3、x51=51%(2×3)=3、x57=57%(2×3)=3……x75=75%(2×3)=3对应的数据迁移至该数据所在物理节点中新增加的分区中,将x48=48%(2×3)=0、x54=54%(2×3)=0……x72=72%(2×3)=0对应的数据保留在原分区中。或者,分区扩展装置可以将模值为0的数据迁移至该数据所在物理节点中新增加的分区中,将模值为3的数据保留在原分区中;例如,分区扩展装置可以将x48=48%(2×3)=0、x54=54%(2×3)=0……x72=72%(2×3)=0对应的数据迁移至该数据所在物理节点中新增加的分区中,将x45=45%(2×3)=3、x51=51%(2×3)=3、x57=57%(2×3)=3……x75=75%(2×3)=3对应的数据保留在原分区中。
需要说明的是,以上述分区1为例,当分区数量倍增的倍数n=3时,分区1中的各个数据的模值分别为:x45=45%(3×3)=0、x48=48%(3×3)=3、x51=51%(3×3)=6、x54=54%(3×3)=0、x57=57%(3×3)=3……x72=72%(3×3)=0、x75=75%(3×3)=3。分区扩展装置可以根据数据的模值0、3、6,迁移模值对应的数据。其中,分布式扩展装置迁移数据到目的分区的方法与分区数量2倍倍增的方法类似,本实施例不再赘述。
207、分区扩展装置在预存的DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。
208、分区扩展装置获取分布式存储***中所有物理节点中扩展后的分区数量的平均值。
其中,分区扩展装置在对分布式存储***中所有物理节点上分区数量进行倍增,并完成将分区中对应数据的迁移后,可以获取分布式存储***中所有物理节点中扩展后的分区数量的平均值,并根据判断分布式存储***中的分区数量是否满足分布式存储***进行至少一次扩容所需要的分区数量。
需要说明的是,分区扩展装置获取分布式存储***中所有物理节点中扩展后的分区数量的平均值的方法与本实施例中分区扩展装置获取分布式存储***中所有物理节点中分区数量的平均值的方法类似,本实施例这里不再赘述。
209、分区扩展装置判断扩展后的分区数量的平均值是否小于预设阈值;若扩展后的分区数量的平均值小于预设阈值,则执行步骤210;若扩展后的分区数量的平均值不小于预设阈值,则执行步骤211。
210、分区扩展装置对各个物理节点中的分区数量进行再次倍增;其中,每次倍增的倍数相同。
其中,当扩展后的分区数量的平均值小于预设阈值时,分区扩展装置则可以对各个物理节点中的分区数量进行再次倍增。分区扩展装置对各个物理节点中的分区数量进行再次倍增时的倍增倍数与分区扩展装置对分区数量进行第一次倍增时的倍增倍数相同。
在分区扩展装置对各个物理节点中的分区数量进行再次倍增后,本实施的方法还可以包括:分区扩展装置在预存的DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。
需要说明的是,分区扩展装置可以对物理节点中的分区数量进行至少一次倍增,每次倍增的倍数相同,且倍增的倍数大于等于2。
211、结束分区扩展流程。
需要说明的是,分区扩展装置可以根据分布式存储***中的物理节点的分区的数量的平均值对分布式存储***中的物理节点的分区进行至少一次扩展。本发明实施例对分区扩展的次数不做限制,分区扩展装置对分布式存储***中的物理节点的分区进行二次扩展或者更多次数的扩展的方法与本实施例中的分区扩展方法类似,本实施例这里不再赘述。
进一步,需要说明的是,本实施例提供的倍增方法,不仅可以应用于分布式存储***的分区扩展过程中,也可以应用于其他存储***中存储节点的倍增过程中,对于本发明的方法的应用范围,本实施例这里不作限制。
本发明实施例提供的分区扩展方法,可以获取分布式存储***中所有物理节点中分区数量的平均值,若分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增,并在预存的分布式哈希表DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。与现有技术中,由于物理节点中分区数量较少导致分布式存储***的扩展性较差相比,可以在分布式存储***扩容时,若分区数量小于预设值,则执行分区数量的倍增,从而可以保证分布式存储***的扩展性。
实施例3
本发明实施例提供一种分区扩展装置,如图3所示,包括:第一获取单元31、第一倍增单元32、映射单元33。
第一获取单元31,用于获取分布式存储***中所有物理节点中分区数量的平均值。
第一倍增单元32,用于若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增。
映射单元33,用于在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系。
进一步的,如图4所示,所述分区扩展装置,还可以包括:第二获取单元34、第三获取单元35、迁移单元36。
第二获取单元34,用于在所述第一倍增单元32对所述各个物理节点中的分区数量进行倍增后,获取所述各个物理节点中的各个分区中的数据的哈希值。
第三获取单元35,用于获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值。
迁移单元36,用于根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
进一步的,所述第一倍增单元32,还用于将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
进一步的,所述分区扩展装置,还可以包括:第四获取单元37、第二倍增单元38。
第四获取单元37,用于在所述映射单元33在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系后,获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值。
第二倍增单元38,用于若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增;其中,每次倍增的倍数相同。
进一步的,所述第一获取单元31,还用于周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
需要说明的是,本发明实施例提供的分区扩展装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的分区扩展装置,可以获取分布式存储***中所有物理节点中分区数量的平均值,若分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增,并在预存的分布式哈希表DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。与现有技术中,由于物理节点中分区数量较少导致分布式存储***的扩展性较差相比,可以在分布式存储***扩容时,若分区数量小于预设值,则执行分区数量的倍增,从而可以保证分布式存储***的扩展性。
实施例4
本发明实施例提供一种分区扩展装置,如图5所示,可以包括:处理器41、存储器42。
处理器41,用于获取分布式存储***中所有物理节点中分区数量的平均值;若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系;
存储器42,用于存储所述处理器41添加的新增加的分区与所述新增加的分区所在的物理节点的映射关系。
进一步的,所述处理器41,还用于获取所述各个物理节点中的各个分区中的数据的哈希值;获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值;根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
进一步的,所述处理器41,还用于将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
进一步的,所述处理器41,还用于在所述DHT中增设所述分区对应的新分区与所述分区所在的物理节点的映射关系后,获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值;若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增;其中,每次倍增的倍数相同。
进一步的,所述处理器41,还用于周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
需要说明的是,本发明实施例提供的分区扩展装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的分区扩展装置,可以获取分布式存储***中所有物理节点中分区数量的平均值,若分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增,并在预存的分布式哈希表DHT中添加新增加的分区与新增加的分区所在的物理节点的映射关系。与现有技术中,由于物理节点中分区数量较少导致分布式存储***的扩展性较差相比,可以在分布式存储***扩容时,若分区数量小于预设值,则执行分区数量的倍增,从而可以保证分布式存储***的扩展性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种分区扩展方法,其特征在于,包括:
获取分布式存储***中所有物理节点中分区数量的平均值;
若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;
在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系;
获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值;
若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增。
2.根据权利要求1所述的分区扩展方法,其特征在于,在所述对各个物理节点中的分区数量进行倍增后,所述方法还包括:
获取所述各个物理节点中的各个分区中的数据的哈希值;
获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值;
根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
3.根据权利要求1或2所述的分区扩展方法,其特征在于,所述对各个物理节点中的分区数量进行倍增,包括:
将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
4.根据权利要求1所述的分区扩展方法,其特征在于,每次倍增的倍数相同。
5.根据权利要求1所述的分区扩展方法,其特征在于,所述获取分布式存储***中所有物理节点中分区数量的平均值,包括:
周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,
响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
6.一种分区扩展装置,其特征在于,包括:
第一获取单元,用于获取分布式存储***中所有物理节点中分区数量的平均值;
第一倍增单元,用于若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;
映射单元,用于在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系;
第四获取单元,用于在所述映射单元在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系后,获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值;
第二倍增单元,用于若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增。
7.根据权利要求6所述的分区扩展装置,其特征在于,还包括:
第二获取单元,用于在所述第一倍增单元对所述各个物理节点中的分区数量进行倍增后,获取所述各个物理节点中的各个分区中的数据的哈希值;
第三获取单元,用于获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值;
迁移单元,用于根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
8.根据权利要求6或7所述的分区扩展装置,其特征在于,所述第一倍增单元,还用于将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
9.根据权利要求6所述的分区扩展装置,其特征在于,每次倍增的倍数相同。
10.根据权力要求6所述的分区扩展装置,其特征在于,所述第一获取单元,还用于周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,
响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
11.一种分区扩展装置,其特征在于,包括:
处理器,用于获取分布式存储***中所有物理节点中分区数量的平均值;若所述分区数量的平均值小于预设阈值,则对各个物理节点中的分区数量进行倍增;在预存的分布式哈希表DHT中添加新增加的分区与所述新增加的分区所在的物理节点的映射关系;
存储器,用于存储所述处理器添加的新增加的分区与所述新增加的分区所在的物理节点的映射关系。
12.根据权利要求11所述的分区扩展装置,其特征在于,所述处理器,还用于获取所述各个物理节点中的各个分区中的数据的哈希值;获取所述数据的哈希值与所述数据所在的物理节点中扩展后得到的分区数量取模所得的模值;根据所述数据的所述模值确定所述数据迁移的目的分区,若所述目的分区和所述数据当前所在分区不同,则将所述数据迁移到所述目的分区。
13.根据权利要求11或12所述的分区扩展装置,其特征在于,所述处理器,还用于将所述各个物理节点中的分区数量至少倍增至所述分区数量的2倍。
14.根据权利要求11所述的分区扩展装置,其特征在于,所述处理器,还用于在所述DHT中增设所述分区对应的新分区与所述分区所在的物理节点的映射关系后,获取所述分布式存储***中所有物理节点中扩展后的分区数量的平均值;若所述扩展后的分区数量的平均值小于所述预设阈值,则对所述各个物理节点中的分区数量进行再次倍增;其中,每次倍增的倍数相同。
15.根据权利要求11所述的分区扩展装置,其特征在于,所述处理器,还用于周期性获取所述分布式存储***中所有物理节点中分区数量的平均值;或者,
响应于用户的触发指令,获取所述分布式存储***中所有物理节点中分区数量的平均值。
CN201280002874.XA 2012-12-27 2012-12-27 一种分区扩展方法及装置 Active CN103229151B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087743 WO2014101070A1 (zh) 2012-12-27 2012-12-27 一种分区扩展方法及装置

Publications (2)

Publication Number Publication Date
CN103229151A CN103229151A (zh) 2013-07-31
CN103229151B true CN103229151B (zh) 2016-08-10

Family

ID=48838330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280002874.XA Active CN103229151B (zh) 2012-12-27 2012-12-27 一种分区扩展方法及装置

Country Status (9)

Country Link
US (1) US9665284B2 (zh)
EP (2) EP3376395A1 (zh)
JP (1) JP6020867B2 (zh)
KR (1) KR101677946B1 (zh)
CN (1) CN103229151B (zh)
AU (1) AU2012398262C1 (zh)
CA (1) CA2894623C (zh)
ES (1) ES2658188T3 (zh)
WO (1) WO2014101070A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462124B (zh) * 2013-09-22 2018-04-06 中国电信股份有限公司 基于线性哈希表的数据存储平台组织方法和数据存储平台
CN103634401B (zh) * 2013-12-03 2015-11-25 北京京东尚科信息技术有限公司 一种存储数据副本的方法和终端装置以及服务器装置
CN103810244B (zh) * 2013-12-09 2017-10-27 北京理工大学 一种基于数据分布的分布式数据存储***的扩容方法
CN103929500A (zh) * 2014-05-06 2014-07-16 刘跃 一种分布式存储***的数据分片方法
EP3128716B1 (en) * 2014-11-05 2019-09-04 Huawei Technologies Co., Ltd. Data processing method and apparatus
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置
CN105630419B (zh) * 2015-12-25 2018-09-21 华为技术有限公司 一种资源池的分区视图发送方法及管理节点
US10157193B2 (en) 2016-03-03 2018-12-18 International Business Machines Corporation Switching between a non-partitioned hash join and a partitioned hash join based on an amount of available memory
CN107943412B (zh) * 2016-10-12 2021-10-22 阿里巴巴集团控股有限公司 一种分区***、删除分区中数据文件的方法、装置及***
US10430706B2 (en) * 2016-12-01 2019-10-01 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either last level cache slice or neural network unit memory
CN108804018A (zh) * 2017-04-26 2018-11-13 华为技术有限公司 一种数据分区的方法及装置
CN108932256A (zh) * 2017-05-25 2018-12-04 中兴通讯股份有限公司 分布式数据重分布控制方法、装置及数据管理服务器
CN107329692B (zh) * 2017-06-07 2020-02-28 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN109995813B (zh) * 2017-12-29 2021-02-26 华为技术有限公司 一种分区扩展方法、数据存储方法及装置
KR102093145B1 (ko) * 2018-06-07 2020-03-25 한밭대학교 산학협력단 생체정보 인식 기반의 데이터 최적화를 위한 오브젝트 스토리지 클라우드 시스템
CN110169008B (zh) * 2018-07-10 2022-06-03 深圳花儿数据技术有限公司 一种基于一致性哈希算法的分布式数据冗余存储方法
CN111694693A (zh) * 2019-03-12 2020-09-22 上海晶赞融宣科技有限公司 数据流存储方法、装置以及计算机存储介质
CN110083312B (zh) * 2019-04-28 2021-01-15 联想(北京)有限公司 磁盘扩容方法、装置及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101374087A (zh) * 2007-08-20 2009-02-25 华为技术有限公司 一种移动自组网络、节点及其区域划分方法
JP4362839B1 (ja) * 2009-05-18 2009-11-11 修平 西山 仮想単一メモリストレージ上におけるメタ情報共有型分散データベース・システム
CN102043726A (zh) * 2010-12-29 2011-05-04 北京播思软件技术有限公司 一种大规模时序数据的存储管理方法
CN102591970A (zh) * 2011-12-31 2012-07-18 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎***

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2167790A1 (en) * 1995-01-23 1996-07-24 Donald S. Maier Relational database system and method with high data availability during table data restructuring
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
JP2009295127A (ja) * 2008-06-09 2009-12-17 Nippon Telegr & Teleph Corp <Ntt> アクセス方法、アクセス装置及び分散データ管理システム
US8074049B2 (en) * 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
CN102725739A (zh) 2009-05-18 2012-10-10 西山修平 虚拟单一存储装置上的元信息共享型分布式数据库***
US20100312749A1 (en) * 2009-06-04 2010-12-09 Microsoft Corporation Scalable lookup service for distributed database
US8996803B2 (en) * 2010-07-02 2015-03-31 Futurewei Technologies, Inc. Method and apparatus for providing highly-scalable network storage for well-gridded objects
US9684702B2 (en) * 2010-12-07 2017-06-20 International Business Machines Corporation Database redistribution utilizing virtual partitions
WO2012164735A1 (ja) * 2011-06-03 2012-12-06 富士通株式会社 情報処理装置、データ管理方法およびデータ管理プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101374087A (zh) * 2007-08-20 2009-02-25 华为技术有限公司 一种移动自组网络、节点及其区域划分方法
JP4362839B1 (ja) * 2009-05-18 2009-11-11 修平 西山 仮想単一メモリストレージ上におけるメタ情報共有型分散データベース・システム
CN102043726A (zh) * 2010-12-29 2011-05-04 北京播思软件技术有限公司 一种大规模时序数据的存储管理方法
CN102591970A (zh) * 2011-12-31 2012-07-18 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎***

Also Published As

Publication number Publication date
EP2921964A1 (en) 2015-09-23
AU2012398262B2 (en) 2016-04-14
EP3376395A1 (en) 2018-09-19
EP2921964B1 (en) 2017-12-20
WO2014101070A1 (zh) 2014-07-03
ES2658188T3 (es) 2018-03-08
KR20150091161A (ko) 2015-08-07
AU2012398262A1 (en) 2015-07-02
US20150293707A1 (en) 2015-10-15
KR101677946B1 (ko) 2016-11-21
CN103229151A (zh) 2013-07-31
EP2921964B8 (en) 2018-02-07
US9665284B2 (en) 2017-05-30
JP2016507813A (ja) 2016-03-10
CA2894623C (en) 2019-09-10
EP2921964A4 (en) 2015-12-09
CA2894623A1 (en) 2014-07-03
AU2012398262C1 (en) 2016-10-13
JP6020867B2 (ja) 2016-11-02

Similar Documents

Publication Publication Date Title
CN103229151B (zh) 一种分区扩展方法及装置
US11029848B2 (en) File management method, distributed storage system, and management node
CN108475207B (zh) 云应用的联合自动缩放
CN109684092B (zh) 资源分配方法及装置
CN102801784B (zh) 一种分布式数据存储方法及设备
US9733835B2 (en) Data storage method and storage server
EP2437168A2 (en) Method and device for balancing load of multiprocessor system
JP2012524946A5 (zh)
CN111290699A (zh) 数据迁移方法、装置及***
JP2011170667A (ja) ファイル同期システム、ファイル同期方法およびファイル同期プログラム
WO2019170011A1 (zh) 任务分配方法及装置、分布式存储***
JP2017027601A5 (zh)
CN106775470B (zh) 一种数据存储的方法及***
CN105468538B (zh) 一种内存迁移方法及设备
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN109766190A (zh) 云资源调度方法、装置、设备及存储介质
CN106201655B (zh) 虚拟机分配方法和虚拟机分配***
CN116962438A (zh) 一种梯度数据同步方法、***、电子设备及可读存储介质
CN108259583B (zh) 一种数据动态迁移方法及装置
CN103546522B (zh) 确定存储服务器的方法及分布式存储***
CN107168649B (zh) 一种分布式存储***中数据分布的方法及装置
KR20200068548A (ko) 병렬계산 가속기 할당률 결정 장치 및 방법
CN110413405A (zh) 多活负载均衡应用的缩容方法、装置、设备及存储介质
CN109101188B (zh) 一种数据处理方法和装置
JP2018156146A (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: 20211221

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