CN104572684B - 数据存储***的容量调整方法、装置及数据存储*** - Google Patents
数据存储***的容量调整方法、装置及数据存储*** Download PDFInfo
- Publication number
- CN104572684B CN104572684B CN201310488156.4A CN201310488156A CN104572684B CN 104572684 B CN104572684 B CN 104572684B CN 201310488156 A CN201310488156 A CN 201310488156A CN 104572684 B CN104572684 B CN 104572684B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- src stunit
- data
- group
- src
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据存储***的容量调整方法、装置及数据存储***,属于存储技术领域。所述方法包括:接收配置信息,该配置信息包括容量调整比例和源存储单元;根据该容量调整比例和源存储单元,确定目标存储单元;根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元。本发明通过对数据存储***的容量进行调整,解决了数据存储***在经过容量调整后资源需求量翻倍,而造成的资源需求量较大的问题。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种数据存储***的容量调整方法、装置及数据存储***。
背景技术
分布式数据存储,是将数据分散存储在多***立的存储设备上,利用多台存储设备来分担负载的存储技术。在分布式数据存储***中,通常将多台存储设备提供的存储资源划分为一个个独立的存储单元,存储时将数据分布式路由到这些存储单元上,实现数据的分布式存储,从而实现对TB级别,甚至PB级别的海量数据存储。而在分布式数据存储***的运营过程中,为了满足不断增长的存储需求,需要进行扩容,增加存储资源来分摊存储压力。
当在进行数据存储资源的扩容时,通常有三种方式。第一种方式为增加机器,将新增加的记录导向到新增加的机器上进行存储。第二种方式为将部分范围的记录从源存储机器上迁移到新增加的存储机器上。第三种方式按照数据存储的哈希范围,将该哈希范围采用一分二的方式,从源存储机器上取出数据,并将取出的数据分拆成两部分分别存储起来。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
目前在线平滑扩容技术对于一个大容量并且增长缓慢的业务,当其存储容量满需要扩容时,一般会采用1个存储单元***为2个存储单元的方式进行扩容,这样使得资源需求量会翻倍,从而造成这种扩容模式资源需求量较大,同时,扩容后保留的容量也较大,使得这些容量较长时间无法得到利用,资源利用率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据存储***的容量调整方法、装置及数据存储***。所述技术方案如下:
第一方面,提供了一种数据存储***的容量调整方法,该方法包括:
接收配置信息,该配置信息包括容量调整比例和源存储单元;
根据该容量调整比例和源存储单元,确定目标存储单元;
根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;
根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元。
第二方面,提供了一种数据存储***的容量调整装置,该装置包括:
接收模块,用于接收配置信息,该配置信息包括容量调整比例和源存储单元;
目标存储单元确定模块,用于根据该容量调整比例和源存储单元,确定目标存储单元;
数据转移方式确定模块,用于根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;
数据转移模块,用于根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元。
第三方面,提供了一种数据存储***,该数据存储***包括:容量调整装置和多个存储单元,
该容量调整装置,用于接收配置信息,该配置信息包括容量调整比例和源存储单元;根据该容量调整比例和源存储单元,确定目标存储单元;根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元;
该多个存储单元,用于存储数据。
本发明实施例提供的技术方案带来的有益效果是:
通过接收配置信息,并根据该配置信息确定目标存储单元,同时根据源存储单元的当前数据总量,来确定该源存储单元向该目标存储单元的数据转移方式,根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元中,解决了数据存储***在经过容量调整后资源需求量翻倍,而造成的资源需求量较大的问题。
同时,本发明实施例提供了根据不同配置信息获取不同的数据转移方式的过程,提高了在数据存储***进行容量调整中的灵活性,避免了对不同配置需求采用固定扩容或缩容方式时造成的容量浪费,以至于多余的容量在较长时间内都无法得到利用的问题,从而满足了现网的资源需求,提高了数据存储***的资源利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据存储***的结构示意图;
图2是本发明实施例提供的一种数据存储***的容量调整方法流程图;
图3是本发明实施例提供的一种数据存储***的容量调整方法流程图;
图4是本发明实施例提供的一种数据存储***的容量调整过程示意图;
图5是本发明实施例提供的一种数据存储***的容量调整装置结构示意图;
图6是本发明实施例提供的一种数据存储***结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了便于理解,对本发明实施例涉及到的数据存储***进行简介:
图1是本发明实施例提供的一种数据存储***的结构示意图。参见图1,该数据存储***包括OSS(Operation Support System,运营支撑***)服务器和生产***,该生产***可以包括:数据路由服务器master、数据迁移服务器dbtrsf和落地存储服务器cell。
其中,OSS服务器负责对生产***的运营、维护和管理。在容量调整的过程中,通过拉取生产***中数据路由服务器的分布式路由表,并根据指定的索引值范围,生成数据转移方式发送给生产***中的数据迁移服务器执行,该数据转移方式即为当前的容量调整计划。数据路由服务器master负责对数据存储***中的生产***集群内的所有存储单元进行路由管理,将存储设备按预设的索引值范围进行划分,形成一个个的存储单元,进行统一管理,一段索引值范围对应一个存储单元。数据存储***中的其他服务器通过与数据路由服务器进行的交互来获知一段索引值范围落在某个存储设备的存储单元上。数据迁移服务器dbtrsf负责一系列的数据转移方式的执行。落地存储服务器cell是生产***中的存储设备,负责数据的磁盘存储,存储服务器里面被分割为一个个具体的存储单元。
图2是本发明实施例提供的一种数据存储***的容量调整方法流程图。参见图2,该发明实施例的执行主体为服务器,该方法包括:
201、服务器接收配置信息,该配置信息包括容量调整比例和源存储单元;
本发明实施例中,该配置信息可以是由用户根据需求来确定的相应数据的参数。其中,容量调整比例可以有多种,如100%、50%等。
源存储单元是指本次容量调整所对应的存储单元。
该服务器可以是处于数据存储***中的OSS服务器。
202、服务器根据该容量调整比例和源存储单元,确定目标存储单元;
本发明实施例中,目标存储单元是指根据容量调整比例和源存储单元进行扩容或缩容后的存储单元,也是该调整过程所涉及到的数据转移的对象。该目标存储单元是根据接收到的容量调整比例和源存储单元进行计算而得到的。
203、服务器根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;
本发明实施例中,数据转移方式可以有多种,当源存储单元的数据容量与目标存储单元的数据容量相等时,将源存储单元中的数据转移到目标存储单元中;当源存储单元的数据容量比目标存储单元的数据容量大时,则将源存储单元中的数据根据预设比例划分为两部分或多个部分,将划分完的数据分别对应转移到两个或多个目标存储单元上;当源存储单元的数据容量比目标存储单元的数据容量小时,则将两个或多个源存储单元中的数据对应转移到目标存储单元上。
204、服务器根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元。
本发明实施例提供的方法,通过接收配置信息,并根据该配置信息确定目标存储单元,同时根据源存储单元的当前数据总量,来确定该源存储单元向该目标存储单元的数据转移方式,根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元中,解决了数据存储***在经过容量调整后资源需求量翻倍,而造成的资源需求量较大的问题。
同时,本发明实施例提供了根据不同配置信息获取不同的数据转移方式的过程,提高了在数据存储***进行容量调整中的灵活性,避免了对不同配置需求采用固定扩容或缩容方式时造成的容量浪费,以至于多余的容量在较长时间内都无法得到利用的问题,从而满足了现网的资源需求,提高了数据存储***的资源利用率。
图3是本发明实施例提供的一种数据存储***的容量调整方法流程图。参见图3,该发明实施例的执行主体为服务器,该方法流程包括:
301、服务器接收配置信息,该配置信息包括容量调整比例和源存储单元;
具体地,用户根据需求设置配置信息,该配置信息至少包括容量调整比例以及源存储单元,并将该配置信息发送到服务器,服务器接收该配置信息。
本发明实施例中,该容量调整比例可以为扩容比例或缩容比例。
需要说明的是,该源存储单元可以是一个或多个。该源存储单元可以由一个或多个根据扩容比例,对存储设备的容量进行扩展;该源存储单元也可以由多个根据缩容比例,对存储设备的容量进行整合。
该服务器可以为数据存储***中的OSS(Operation Support System,运营支撑***)服务器。在容量调整的过程中,该OSS服务器通过拉取生产***中数据路由服务器的分布式路由表,并根据指定的索引值范围,生成数据转移方式发送给生产***中的数据迁移服务器执行。
302、服务器根据该容量调整比例和源存储单元,确定该目标存储单元的数目;
具体地,服务器根据接收到的配置信息,通过配置信息的容量调整比例和源存储单元,计算出经过容量调整后的目标存储单元的数目。如,当扩容比例为S,源存储单元的数目为N时,则经过扩容后目标存储单元的数目为M,且M=N(S+1)。具体地,当S=50%,N=2时,则M=3,即经过扩容后的目标存储单元有3个。
当缩容比例为S,源存储单元的数目为N时,则经过扩容后目标存储单元的数目为M,且M=N/(S+1),具体地,当S=50%,N=3时,则M=2,即经过缩容后目标存储单元有2个。
303、服务器确定目标存储设备;
具体地,当服务器确定该目标存储单元的数目后,服务器根据目标存储单元的数目,查找服务器中的存储设备,将包括空闲存储单元的数目大于或等于该目标存储单元数目的存储设备确定为目标存储设备。
本发明实施例中,该步骤303还可以为:当该配置信息还包括存储设备地址信息时,确定与该存储设备地址信息相应的目标存储设备;或,当该配置信息还包括存储设备标识时,确定与该存储设备标识相应的目标存储设备;或,当该配置信息还包括存储单元标识时,确定与该存储单元标识相应的目标存储设备。
其中,存储设备地址信息可以为该存储设备的IP地址或MAC(Media AccessControl,媒体介入控制层)地址。存储设备标识可以为存储设备ID(Identity,身份标识号码),也可以为存储设备名称,还可以为存储设备编号等用于标识存储设备的标识。存储单元标识可以为该存储单元ID,也可以为该存储单元名称,还可以为存储单元编号等用于标识存储单元的标识。需要说明的是,存储单元标识与存储设备标识或地址信息相对应,通过存储单元标识可以获知该存储单元位于哪个存储设备上,本发明实施例对如何通过存储单元确定存储设备的过程不做限定。
304、服务器获取该目标存储设备上与该数目相符、且处于空闲状态的存储单元作为目标存储单元;
具体地,当服务器确定目标存储设备后,服务器将会在该目标存储设备上查找与该目标存储单元的数目相符的存储单元,并将这些存储单元中处于空闲状态的存储单元作为目标存储单元。
需要说明的是,处于空闲状态的存储单元的判断方法可以是根据空闲存储单元数量的多少来判断目标存储设备中是否存在空闲存储单元。当目标存储设备中空闲存储单元的数量越多时,将该空闲存储单元作为目标存储单元的几率就越大,当目标存储设备中空闲存储单元的数量越少时,将该空闲存储单元作为目标存储单元的几率就越小。当然,也可以通过预先设定的方式来获取目标存储单元,本发明实施例对此不做限定。
在本发明实施例中,仅以服务器确定目标存储单元的数目后,对获取目标存储设备中的目标存储单元为例进行的说明,上述步骤302-304是顺序进行的,而在实际操作的过程中,目标存储单元的获取过程也可以是一次性进行的操作,也即是上述步骤302、303和304同时进行,本发明实施例对步骤302到步骤304的顺序不做限定。
305、服务器根据该容量调整比例,确定与该容量调整比例相对应的每组内源存储单元的数目;
具体地,在服务器接收到配置信息后,根据其中的容量调整比例,确定与该容量调整比例相对应的每组内源存储单元的数目。如,当扩容比例为100%时,与该扩容比例相对应的每组内源存储单元的数目为1;当扩容比例为50%时,与该扩容比例相对应的每组内源存储单元的数目为2;当扩容比例为25%时,与该扩容比例相对应的每组内源存储单元的数目为4;当扩容比例为10%时,与该扩容比例相对应的每组内源存储单元的数目为10。
当缩容比例为100%时,与该缩容比例相对应的每组内源存储单元的数目为2;当缩容比例为50%时,与该缩容比例相对应的每组内源存储单元的数目为3;当缩容比例为25%时,与该缩容比例相对应的每组内源存储单元的数目为5;当缩容比例为10%时,与该缩容比例相对应的每组内源存储单元的数目为11。
306、服务器根据确定的每组内源存储单元的数目,对源存储单元进行分组;
具体地,服务器根据容量调整比例,确定与该容量调整比例相对应的每组内源存储单元的数目后,服务器根据已确定的每组内源存储单元的数目,对源存储单元进行分组。
下面,分别以扩容和缩容两种情况为例进行说明,如,当扩容比例为100%时,由于与该扩容比例相对应的每组内源存储单元的数目为1,则此时以每个源存储单元为一组。当扩容比例为50%时,由于与该扩容比例相对应的每组内源存储单元的数目为2,则此时以每2个源存储单元为一组。当扩容比例为25%时,由于与该扩容比例相对应的每组内源存储单元的数目为4,则此时以每4个源存储单元为一组。当扩容比例为10%时,由于与该扩容比例相对应的每组内源存储单元的数目为10,则此时以每10个源存储的单元为一组。
又如,当缩容比例为100%时,由于与该缩容比例相对应的每组内源存储单元的数目为2,则此时以每2个源存储单元为一组。当缩容比例为50%时,由于与该缩容比例相对应的每组内源存储单元的数目为3,则此时以每3个源存储单元为一组。当缩容比例为25%时,由于与该缩容比例相对应的每组内源存储单元的数目为5,则此时以每5个源存储单元为一组。当缩容比例为10%时,由于与该缩容比例相对应的每组内源存储单元的数目为11,则此时以每11个源存储单元为一组。
307、服务器获取每个源存储单元组中各个源存储单元的数据量信息;
具体地,服务器根据对源存储单元的分组,以一组为单位,服务器从该组中获取各个源存储单元的数据量信息。
下面,分别以扩容和缩容两种情况为例进行说明,例如,当扩容比例为50%,每组中包含2个源存储单元,且该2个源存储单元当前的数据量都为600MB时,此时,服务器获取该组中所包含的2个源存储单元的数据量信息,即得到该组中2个源存储单元的数据量都为600MB。
又如,当缩容比例为100%,每组中包含2个源存储单元,且该2个源存储单元当前的数据量都为500MB时,此时,服务器获取该组中所包含的2个源存储单元的数据量信息,即得到该组中2个源存储单元的数据量都为500MB。
308、服务器根据该各个源存储单元的数据量信息,获取每个源存储单元组的数据总量;
具体地,当服务器得到每个源存储单元组中各个源存储单元的数据量信息后,该服务器将根据得到的该各个源存储单元的数据量信息,计算得到该各个源存储单元所在的源存储单元组当前数据存储的总量,该数据存储的总量即为组内多个源存储单元的数据量之和。
下面,分别以扩容和缩容两种情况为例进行说明,基于步骤307的示例,当扩容比例为50%,每组中包含2个源存储单元,且该2个源存储单元当前的数据量都为600MB时,服务器根据该2个源存储单元的数据量信息,得到2个源存储单元所组成的该源存储单元组的数据总量为1200MB。
又如,基于步骤307的示例,当缩容比例为100%,每组中包含2个源存储单元,且该2个源存储单元当前的数据量都为500MB时,服务器根据该2个源存储单元的数据量信息,得到2个源存储单元所组成的该源存储单元组的数据总量为1000MB。
309、服务器将该源存储单元组对应的索引值范围平均分配至该源存储单元组对应的目标存储单元;
根据获取到的每个源存储单元组的数据总量的不同,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元的过程可以包括以下过程:根据服务器计算得到的每组的数据总量,判断该源存储单元组中的数据总量是否为0。当该源存储单元组中的数据总量不为0时,该步骤309包括:步骤3091-步骤3093;当该源存储单元组中的数据总量为0时,该步骤309包括:步骤309A-步骤309C。
3091、当该源存储单元组中的数据总量不为0时,服务器根据该源存储单元组中各个存储单元上存储的数据、该数据总量、该目标存储单元以及该源存储单元组对应的索引值范围,计算该源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点;
当该源存储单元组中的数据总量不为0时,服务器根据该源存储单元组的数据总量和该目标存储单元,确定容量调整后每个目标存储单元中的数据量,服务器根据该确定的数据量、该源存储单元组中各个存储单元上存储的数据以及该源存储单元组对应的索引值范围,计算该源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点。如,当源存储单元组的数据总量为T,该目标存储单元的数目为M,该源存储单元组中包括2个源存储单元,其中一个源存储单元所存储的数据量为K1,另一个源存储单元所存储的数据量为K2,数据量为K1的源存储单元所存储数据对应的索引值范围为R11~R12,数据量为K2的源存储单元所存储数据对应的索引值范围为R21~R22,则数据量为K1的源存储单元所存储数据对应的索引值范围的分割点为(R12-R11)*T/(M*K1),数据量为K2的源存储单元所存储数据对应的索引值范围的分割点为(R22-R21)*T/(M*K2)。
本发明实施例中,该索引值可以为数据所对应的key的HASH值。由于在线平滑扩容的基本单位是HASH桶,所以在数据存储单元进行扩容的过程中,需要利用HASH算法将数据所对应的key,分配到预设数目的HASH桶中,落在一段连续HASH范围中的记录,存储在一个存储单元中。其中,HASH桶到存储单元的映射称为数据路由表。表1是400个HASH桶的路由表。
表1
[0~99] | Tablet1 |
[100~199] | Tablet2 |
[200~299] | Tablet3 |
[300~399] | Tablet4 |
由上表1可知,处于连续的HASH范围[0~99]的数据,位于存储单元Tablet1中。
下面,分别以扩容和缩容两种情况为例进行说明,基于步骤307的示例,当扩容比例为50%时,可知每组内源存储单元的数目为2,扩容后目标存储单元的数目为3,当一组中2个源存储单元当前的数据量都为600MB时,则该源存储单元组的数据总量为1200MB,则容量调整后每个目标存储单元内的数据量为400MB。当2个源存储单元分别为表1中的Tablet1和Tablet2时,则源存储单元Tablet1所存储数据对应的HASH范围为[0~99],源存储单元Tablet2所存储数据对应的HASH范围为[100~199],此时,源存储单元Tablet1所存储数据对应的HASH范围的分割点为(99-0)*(400/600)=66,即HASH值为66的位置为该分割点,源存储单元Tablet2所存储数据对应的索引值范围的分割点为(199-100)*(400/600)=66,由于该HASH范围的HASH终止值为199,因此HASH值为133的位置为该分割点。
又如,基于步骤307的示例,当缩容比例为100%时,可知每组内源存储单元的数目为2,缩容后目标存储单元的数目为1,当一组中2个源存储单元当前的数据量都为500MB时,则该源存储单元组的数据总量为1000MB,此时,容量调整后该目标存储单元内的数据量为1000MB。由于缩容情况下,不需要将源存储单元所存储数据对应的索引值范围进行***,因此不需要分割点,该情况下,只需将2个源存储单元所存储数据对应的索引值范围进行整合即可。当2个源存储单元分别为表1中的Tablet1和Tablet2时,将2个源存储单元所存储数据对应的索引值范围进行整合,结果参见表2。
表2
[0~199] | Tablet5 |
[200~399] | Tablet6 |
可见,在容量调整后,源存储单元Tablet1和Tablet2将会缩容为目标存储单元Tablet5,该Tablet5所存储数据对应的HASH范围为[0~199]。
3092、服务器根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元;
具体地,当服务器得到该源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点后,服务器根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元,同时将该索引值范围所对应的数据分配至该源存储单元组对应的中间存储单元。
基于步骤3091的示例,得到源存储单元Tablet1所存储数据对应的索引值范围的分割点为66时,则将源存储单元Tablet1所存储数据对应的HASH范围分成2个部分,即[0~66]和[67~99],将以上2个HASH范围分配至该源存储单元组对应的中间存储单元。表3是索引值范围与中间存储单元的对应关系。参见表3,同时将HASH范围为[0~66]所对应的数据量为400MB分配至该源存储单元组对应的其中一个中间存储单元Tablet7,将HASH范围为[67~99]所对应的数据量为200MB分配至该源存储单元组对应的其中第二个中间存储单元Tablet8。相应地,源存储单元Tablet2所存储数据对应的HASH范围分成2个部分,即[100~132]和[133~199],将以上2个HASH范围分配至该源存储单元组对应的中间存储单元Tablet9和Tablet10,同时,将HASH范围[100~132]和[133~199]所对应的数据量为200MB和400MB分别分配至中间存储单元Tablet9和Tablet10。
表3
[0~66] | Tablet7 |
[67~99] | Tablet8 |
[100~132] | Tablet9 |
[133~199] | Tablet10 |
需要说明的是,本发明实施例中,在进行索引值范围和该索引值范围所对应的数据的分配操作时,并不是将该索引值范围和该索引值范围所对应的数据进行转移,而是确定该源存储单元向该目标存储单元的数据转移方式的一种实现方式。
本发明实施例中,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元,包括将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元,同时将该索引值范围对应的数据分配至该源存储单元组对应的中间存储单元。
3093、服务器根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元;
具体地,当服务器将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元后,将该中间存储单元对应的索引值根据该目标存储单元的数目和容量调整后每个目标存储单元内所存储的数据量进行整合,已达到将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元的目的,同时,将该索引值范围所对应的数据平均分配至该源存储单元组对应的目标存储单元。
基于步骤3092中的示例,由于中间存储单元Tablet7对应的HASH范围为[0~66],中间存储单元Tablet8对应的HASH范围为[133~199],而该源存储单元组中2个源存储单元Tablet1和Tablet2,所对应的目标存储单元为3个,即Tablet11、Tablet12、Tablet13,容量调整后每个目标存储单元中存储的数据量为400MB,则将中间存储单元Tablet7中分配的数据与该数据对应的HASH范围,分配至目标存储单元Tablet11,将中间存储单元Tablet10中分配的数据与该数据对应的HASH范围,分配至目标存储单元Tablet13,参见表4,此时需要将中间存储单元Tablet8和中间存储单元Tablet9中所分配的数据进行整合,即将中间存储单元Tablet8和中间存储单元Tablet9进行缩容,使得中间存储单元Tablet8和中间存储单元Tablet9的HASH范围为[67~132],将该HASH范围和该HASH范围对应的数据分配至目标存储单元Tablet12中。
表4
[0~66] | Tablet11 |
[67~132] | Tablet12 |
[133~199] | Tablet13 |
其中,当该源存储单元组中的数据总量不为0、且该容量调整比例为扩容100%时,将该源存储单元组中各个存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
具体地,当该源存储单元组中的数据总量不为0、且该容量调整比例为扩容100%时,由于此时是将1个源存储单元扩容为2个目标存储单元,因此只需要将该源存储单元所存储的数据以及该数据所对应的索引值范围进行平均分配即可。在这种情况下,服务器将该源存储单元组中各个存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。如,基于步骤3091的示例,表1中Tablet1为源存储单元,则需要将Tablet1所存储的数据平均划分为2部分,数据大小为300MB,并将Tablet1所存储的数据对应的HASH范围划分为2部分,即[0~50]和[51~99],将该源存储单元组中各个存储单元对应的索引值范围以及该索引值范围对应的数据平均分配至该源存储单元组对应的目标存储单元。
本发明实施例中,将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元,包括将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元,同时将该索引值范围对应的数据平均分配至该源存储单元组对应的目标存储单元。
309A、当该源存储单元组中的数据总量为0时,服务器根据该源存储单元组对应的索引值范围和该目标存储单元,计算该源存储单元组中每个存储单元对应的索引值范围的分割点;
具体地,根据服务器计算得到的每组的数据总量,判断该源存储单元组中的数据总量是否为0。当该源存储单元组中的数据总量为0时,根据该源存储单元组对应的索引值范围和该目标存储单元的数目,计算该源存储单元组中每个存储单元对应的索引值范围的分割点。如,当该源存储单元组中包括2个源存储单元,其中一个源存储单元所存储数据对应的索引值范围为R31~R32,另一个源存储单元所存储数据对应的索引值范围为R41~R42,该源存储单元组对应的目标存储单元的数目为M1,则该源存储单元组中每个存储单元对应的索引值范围的分割点分别为(R42-R31)/M1。
基于步骤3091的示例,当扩容比例为50%时,可知每组内源存储单元的数目为2,扩容后目标存储单元的数目为3。在表1中,2个源存储单元分别为Tablet1和Tablet2,源存储单元Tablet1所存储数据对应的HASH范围为[0~99],源存储单元Tablet2所存储数据对应的HASH范围为[100~199],则该源存储单元组所存储的数据所对应的HASH范围为[0~199],则该源存储单元组中源存储单元Tablet1对应的HASH范围的分割点为(199-0)/3=66,也即是存储单元中所存储数据对应的HASH范围内HASH值间隔为66。则源存储单元Tablet1对应的HASH范围被划分为[0~66]和[67~99]两部分;该源存储单元组中源存储单元Tablet2对应的HASH范围的分割点为199-66=133,即源存储单元Tablet2对应的HASH范围被划分为[100~132]和[133~199]两部分。
309B、服务器根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元;
具体地,当服务器得到该源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点后,服务器根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元。
基于步骤309A的示例,当服务器得到该源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点后,将源存储单元Tablet1对应的HASH范围划分为[0~66]和[67~99]两部分,将源存储单元Tablet2对应的HASH范围划分为[100~132]和[133~199]两部分,将以上2个HASH范围分配至该源存储单元组对应的中间存储单元,参见表3。
309C、服务器根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元;
具体地,当服务器将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元后,将该中间存储单元对应的索引值根据该目标存储单元的数目和容量调整后每个目标存储单元所分配的索引值范围进行整合,已达到将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元的目的。
基于步骤309C和步骤309B的示例,由于每个目标存储单元在进行容量调整之后所分配的HASH范围内的HASH值间隔为66,则中间存储单元Tablet7和中间存储单元Tablet10所分配的HASH范围内的HASH值间隔间隔已为66,需要将中间存储单元Tablet8和中间存储单元Tablet9进行缩容,使得缩容后对应的存储单元所分配的HASH范围间隔为66,分配结果参见表4。
需要说明的是,当该源存储单元组中每个存储单元上存储的数据均小于分配后目标存储单元对应的数据量时,将该源存储单元组对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
具体地,当扩容比例为50%,源存储单元组中包括2个源存储单元Tablet1和Tablet2,其中源存储单元Tablet1所存储数据对应的HASH范围为[0~99],容量调整后3个源存储单元中每个源存储单元所分配的数据量为500MB,源存储单元Tablet1所存储的数据量为400MB,则该源存储单元Tablet1所存储数据对应的HASH范围的分割点为(99-0)*(500/400)=123,也即是存储单元中所存储数据对应的HASH范围内HASH值间隔为123。由于源存储单元Tablet1所存储数据对应的HASH范围内的HASH终止值为99,因此,不对该源存储单元Tablet1进行***,等待与其它中间存储单元进行缩容,使得缩容后存储单元中所存储数据对应的HASH范围内HASH值间隔为123。进一步使得该源存储单元组对应的索引值范围平均分配至该源存储单元组对应的目标存储单元中。
本发明实施例中,每组中的源存储单元的索引值范围是连续的,即每组中的源存储单元的key范围是连续的,由于该key的范围连续则与其相对应的HASH范围也是连续的。
需要说明的是,本发明实施例中步骤301-步骤309中的步骤302-304和步骤305-308是按照顺序进行的具体说明,在实际操作过程中,步骤302-304和步骤305-308可以是同时进行,本发明实施例对此不做限定。
OSS服务器根据该源存储单元与该源存储单元相对应的目标存储单元的数据分配关系确定数据转移方式,并发送至数据迁移服务器,以控制该数据迁移服务器按照该数据转移方式对数据存储资源进行容量调整,即如下步骤310-步骤314所述的过程。
310、服务器获取该源存储单元的路由信息;
具体地,当OSS服务器将源存储单元组中的数据平均分配到与该源存储单元组相对应的目标存储单元中后,服务器获取该源存储单元的路由信息。
需要说明的是,当该OSS服务器具备数据迁移功能时,该数据迁移可以由OSS服务器执行,而基于图1所示的数据存储***架构,该OSS服务器可以通过向数据迁移服务器发送数据转移方式,控制该数据迁移服务器获取源存储单元的路由信息,即获取源存储单元中索引值范围与源存储单元的对应关系,以实现数据迁移。基于表1的路由表,如果源存储单元为Tablet1和Tablet2,则与其相对应的HASH范围分别为[0~99]和[100~199]。
需要说明的是,同一源存储单元组生成的扩容或缩容计划需要处于同一个数据迁移服务器上,以保证该扩容或缩容计划可以由数据迁移服务器有序的执行。
该源存储单元的路由信息可以是OSS服务器或数据迁移服务器根据通过从数据路由服务器中拉取而得到的。
311、服务器根据该源存储单元的路由信息,判断源存储单元是否合法;
当源存储单元合法时,执行步骤312;
当源存储单元不合法时,结束。
具体地,当该OSS服务器具备数据迁移功能时,该数据迁移可以由OSS服务器执行,而基于图1所示的数据存储***架构,服务器获取到该源存储单元的路由信息后,OSS服务器根据数据转移方式,使得该数据迁移服务器根据该源存储单元的路由信息,判断该源存储单元是否合法。
需要说明的是,判断该源存储单元是否合法可以是通过判断该源存储单元是否可以正常运转来实现,当该源存储单元正常运转时,OSS服务器或数据迁移服务器确定该源存储单元合法,当该源存储单元不能正常运转时,OSS服务器或数据迁移服务器确定该源存储单元不合法。判断该源存储单元是否合法也可以是通过判断所获取到的源存储单元的路由信息是否完整或者是否存在该路由信息来实现,当该源存储单元的路由信息完整或者存在该路由信息时,OSS服务器或数据迁移服务器确定该源存储单元合法,当该源存储单元的路由信息不完整或者不存在该路由信息时,OSS服务器或数据迁移服务器确定该源存储单元不合法。判断该源存储单元是否合法还可以是通过判断当前时间源存储单元是否处于空闲状态来实现,当当前时间源存储单元处于空闲状态时,OSS服务器或数据迁移服务器确定该源存储单元合法,当当前时间源存储单元未处于空闲状态时,OSS服务器或数据迁移服务器确定该源存储单元不合法,本发明实施例对此不做限定。
本发明实施例中,判断源存储单元是否合法包括当源存储单元被确定时,判断该确定的源存储单元是否合法;当源存储单元未被确定时,服务器根据获取到的源存储单元的路由信息来分配空闲存储单元。
312、当该源存储单元合法时,服务器在该源存储单元与该目标存储单元之间建立路由双写关系;
具体地,若该OSS服务器具备数据迁移功能,该数据迁移可以由OSS服务器执行,而基于图1所示的数据存储***架构,当服务器通过判断,确定该源存储单元合法时,OSS服务器根据数据转移方式,使得该数据迁移服务器将该源存储单元与该源存储单元所对应的目标存储单元进行路由串联,以建立路由双写关系,使得在将源存储单元中的数据向目标存储单元移动的过程中,可以实现数据的平滑移动,且保证源存储单元与目标存储单元可以进行数据交换。
需要说明的是,本发明实施例仅以通过源存储单元合法与不合法的判断,来对该源存储单元与该源存储单元所对应的目标存储单元是否进行路由串联,以建立路由双写关系进行的说明,在实际的具体实施过程中,OSS服务器或数据迁移服务器也可以不对源存储单元是否合法做出判断,而在执行步骤310后直接执行步骤312及后续步骤,本发明实施例对此不做限定。
313、服务器根据确定的数据转移方式,通过该路由双写关系,将该源存储单元上存储的数据转移至该目标存储单元;
具体地,若该OSS服务器具备数据迁移功能,该数据迁移可以由OSS服务器执行,而基于图1所示的数据存储***架构,服务器在该源存储单元与该目标存储单元建立路由双写关系后,OSS服务器确定该次容量调整的源存储单元向目标存储单元的数据转移方式,从而使得该数据迁移服务器能够根据获得的数据转移方式,从源存储单元中提取数据,通过该路由双写关系,将该源存储单元上提取的数据按照数据转移方式来整合数据,并发送至落地存储服务器的该目标存储单元中,使得经过整合的数据能够被保存在该目标存储单元中。
本发明实施例中,OSS服务器或该数据迁移服务器通过数据转移方式,对源存储单元组中所存储数据和该数据对应的索引值范围进行分割或缩容,通过该路由双写关系,将需要分割或缩容的源存储单元组中所存储数据和该数据对应的索引值范围进行迁移。
进一步地,当数据转移完成时,释放源存储单元,以避免对存储资源的浪费。
以步骤3091中的扩容比例为50%为例,以上步骤313的过程如图4所示,即为:每组内源存储单元的数目为2,扩容后目标存储单元的数目为3,当一组中2个源存储单元当前的数据量都为600MB时,则该源存储单元组的数据总量为1200MB,则服务器根据该源存储单元组中各个存储单元上存储的数据都为600MB、该数据总量1200MB、该目标存储单元以及该源存储单元组对应的索引值范围,得到1、2、3、4四个中间存储单元,则根据四个中间存储单元中的数据容量和每个目标存储单元中的数据容量,将该四个中间存储单元中的数据根据步骤3093中的分配关系,转移至目标存储单元中,以使得每个目标存储单元中保存的数据容量为400MB。
314、服务器根据该确定的数据转移方式,将索引值范围与存储单元之间的映射关系修改为转移后的目标存储单元上存储数据对应的索引值范围与该目标存储单元之间的映射关系。
具体地,若该OSS服务器具备数据迁移功能,该数据迁移可以由OSS服务器执行,而基于图1所示的数据存储***架构,当服务器通过路由双写关系,已经将该源存储单元上存储的数据转移到该目标存储单元中,则OSS服务器根据数据转移方式,使得数据路由服务器结束源存储单元与该源存储单元所对应的目标存储单元之间的路由串联,进而使得数据迁移服务器结束两者间所建立的的双写关系,同时将索引值范围与存储单元之间的映射关系修改为转移后的目标存储单元上存储数据对应的索引值范围与该目标存储单元之间的映射关系。
其中,结束源存储单元与该源存储单元所对应的目标存储单元之间的路由串联,可以是OSS服务器或数据迁移服务器通过向数据路由服务器发送通知信息来实现,该通知信息用于通知数据路由服务器结束当前路由串联,以此来结束路由双写关系。
需要说明的是,索引值范围与存储单元之间的映射关系或者目标存储单元上存储数据对应的索引值范围与该目标存储单元之间的映射关系可以表格的形式进行存储。下面,分别以扩容和缩容两种情况为例进行说明,如,基于表4,在进行扩容的过程中,当目标存储单元为Tablet11、Tablet12、Tablet13时,对应的索引值范围以HASH范围表示,则分别为[0~66]、[67~132]和[133~199],而在进行数据转移之前,索引值范围与存储单元之间的映射关系为表1中源存储单元为Tablet1和Tablet2所对应的HASH范围,分别为[0~99]和[100~199]。
又如,基于表2,在进行缩容的过程中,当目标存储单元为Tablet5时,对应的索引值范围以HASH桶表示,则为[0~199],而在进行数据转移之前,索引值范围与存储单元之间的映射关系为表1中源存储单元为Tablet1和Tablet2所对应的索引值范围,分别为[0~99]和[100~199]。
本发明实施例提供的方法,通过接收配置信息,并根据该配置信息确定目标存储单元,同时根据源存储单元的当前数据总量,来确定该源存储单元向该目标存储单元的数据转移方式,根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元中,解决了数据存储***在经过容量调整后资源需求量翻倍,而造成的资源需求量较大的问题。
同时,本发明实施例提供了根据不同配置信息获取不同的数据转移方式的过程,提高了在数据存储***进行容量调整中的灵活性,避免了对不同配置需求采用固定扩容或缩容方式时造成的容量浪费,以至于多余的容量在较长时间内都无法得到利用的问题,从而满足了现网的资源需求,提高了数据存储***的资源利用率。
进一步地,通过在数据转移时,综合考虑了源存储单元的数据量以及存储数据对应的索引值范围,使得在容量调整时,不对其他存储单元的数据造成影响,仅通过在数据转移之后对映射关系的处理,实现了对数据存储***的平滑调整。
图5是本发明实施例提供的一种数据存储***的容量调整装置结构示意图。参见图5,该装置包括:接收模块501、目标存储单元确定模块502、数据转移方式确定模块503和数据转移模块504。其中,接收模块501,用于接收配置信息,该配置信息包括容量调整比例和源存储单元;该接收模块501与该目标存储单元确定模块502相连接,该目标存储单元确定模块502,用于根据该容量调整比例和源存储单元,确定目标存储单元;该目标存储单元确定模块502与该数据转移方式确定模块503相连接,该数据转移方式确定模块503,用于根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;该数据转移方式确定模块503与该数据转移模块504相连接,该数据转移模块504,用于根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元。
可选地,该数据转移方式确定模块503包括:
分组单元,用于根据该容量调整比例和源存储单元,对该源存储单元进行分组;
数据总量计算单元,用于计算每个源存储单元组的数据总量;
分配单元,用于将该源存储单元组对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
可选地,该分配单元还用于当该源存储单元组中的数据总量不为0时,根据该源存储单元组中各个存储单元上存储的数据、该数据总量、该目标存储单元以及该源存储单元组对应的索引值范围,计算该源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点;根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元;根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
可选地,该分配单元还用于当该源存储单元组中的数据总量不为0、且该容量调整比例为扩容100%时,将该源存储单元组中各个存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
可选地,该分配单元还用于当该源存储单元组中的数据总量为0时,根据该源存储单元组对应的索引值范围和该目标存储单元,计算该源存储单元组中每个存储单元对应的索引值范围的分割点;根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该源存储单元组对应的索引值范围分配至该源存储单元组对应的中间存储单元;根据该源存储单元组中每个存储单元对应的索引值范围的分割点,将该中间存储单元对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
可选地,该分配单元还用于当该源存储单元组中每个存储单元上存储的数据均小于分配后目标存储单元对应的数据量时,将该源存储单元组对应的索引值范围平均分配至该源存储单元组对应的目标存储单元。
可选地,该分组单元还用于根据该容量调整比例,确定与该容量调整比例相对应的每组内源存储单元的数目;根据确定的每组内源存储单元的数目,对源存储单元进行分组。
可选地,该目标存储单元确定模块502包括:
目标存储单元数目确定单元,用于根据该容量调整比例和源存储单元,确定该目标存储单元的数目;
目标存储设备确定单元,用于确定目标存储设备;
目标存储单元获取单元,用于获取该目标存储设备上与该数目相符、且处于空闲状态的存储单元作为目标存储单元。
可选地,该目标存储设备确定单元还用于当该配置信息还包括存储设备地址信息时,确定与该存储设备地址信息相应的目标存储设备;或,该目标存储设备确定单元还用于当该配置信息还包括存储设备标识时,确定与该存储设备标识相应的目标存储设备;或,该目标存储设备确定单元还用于当该配置信息还包括存储单元标识时,确定与该存储单元标识相应的目标存储设备。
可选地,该数据总量计算单元还用于获取每个源存储单元组中各个源存储单元的数据量信息;根据该各个源存储单元的数据量信息,获取每个源存储单元组的数据总量。
可选地,该数据转移模块504还用于获取该源存储单元的路由信息;根据该源存储单元的路由信息,判断源存储单元是否合法;当该源存储单元合法时,在该源存储单元与该目标存储单元之间建立路由双写关系;根据确定的数据转移方式,通过该路由双写关系,将该源存储单元上存储的数据转移至该目标存储单元。
可选地,该装置还包括:
映射关系修改模块,用于根据该确定的数据转移方式,将索引值范围与存储单元之间的映射关系修改为转移后的目标存储单元上存储数据对应的索引值范围与该目标存储单元之间的映射关系。
可选地,该容量调整比例为扩容比例或缩容比例。
综上所述,本发明实施例提供的装置,通过接收配置信息,并根据该配置信息确定目标存储单元,同时根据源存储单元的当前数据总量,来确定该源存储单元向该目标存储单元的数据转移方式,根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元中,解决了数据存储***在经过容量调整后资源需求量翻倍,而造成的资源需求量较大的问题。
同时,本发明实施例提供了根据不同配置信息获取不同的数据转移方式的过程,提高了在数据存储***进行容量调整中的灵活性,避免了对不同配置需求采用固定扩容或缩容方式时造成的容量浪费,以至于多余的容量在较长时间内都无法得到利用的问题,从而满足了现网的资源需求,提高了数据存储***的资源利用率。
需要说明的是:上述实施例提供的数据存储***的容量调整装置在容量调整时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将***的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储***的容量调整装置与数据存储***的容量调整方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本发明实施例提供的一种数据存储***结构示意图。参见图6,该数据存储***包括:容量调整装置601和存储单元602,
该容量调整装置601,用于接收配置信息,该配置信息包括容量调整比例和源存储单元;根据该容量调整比例和源存储单元,确定目标存储单元;根据该源存储单元的当前数据总量,确定该源存储单元向该目标存储单元的数据转移方式;根据确定的数据转移方式,将该源存储单元上存储的数据转移至该目标存储单元;
多个存储单元602,用于存储数据。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (28)
1.一种数据存储***的容量调整方法,其特征在于,所述方法包括:
接收配置信息,所述配置信息包括容量调整比例和源存储单元;
根据所述容量调整比例和源存储单元,确定目标存储单元,所述目标存储单元是指根据所述容量调整比例和所述源存储单元进行扩容或缩容后的存储单元;
根据所述源存储单元的当前数据总量,确定所述源存储单元向所述目标存储单元的数据转移方式,不同配置信息确定的数据转移方式不同;
根据确定的数据转移方式,将所述源存储单元上存储的数据转移至所述目标存储单元。
2.根据权利要求1所述的方法,其特征在于,所述根据所述源存储单元的当前数据总量,确定所述源存储单元向所述目标存储单元的数据转移方式包括:
根据所述容量调整比例和源存储单元,对所述源存储单元进行分组;
计算每个源存储单元组的数据总量;
将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
3.根据权利要求2所述的方法,其特征在于,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元包括:
当所述源存储单元组中的数据总量不为0时,根据所述源存储单元组中各个存储单元上存储的数据、所述数据总量、所述目标存储单元以及所述源存储单元组对应的索引值范围,计算所述源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点;
根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述源存储单元组对应的索引值范围分配至所述源存储单元组对应的中间存储单元;
根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述中间存储单元对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
4.根据权利要求2所述的方法,其特征在于,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元包括:
当所述源存储单元组中的数据总量不为0,且所述容量调整比例为扩容100%时,将所述源存储单元组中各个存储单元对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
5.根据权利要求2所述的方法,其特征在于,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元包括:
当所述源存储单元组中的数据总量为0时,根据所述源存储单元组对应的索引值范围和所述目标存储单元,计算所述源存储单元组中每个存储单元对应的索引值范围的分割点;
根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述源存储单元组对应的索引值范围分配至所述源存储单元组对应的中间存储单元;
根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述中间存储单元对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
6.根据权利要求2所述的方法,其特征在于,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元包括:
当所述源存储单元组中每个存储单元上存储的数据均小于分配后目标存储单元对应的数据量时,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
7.根据权利要求2所述的方法,其特征在于,根据所述容量调整比例和源存储单元,对所述源存储单元进行分组包括:
根据所述容量调整比例,确定与所述容量调整比例相对应的每组内源存储单元的数目;
根据确定的每组内源存储单元的数目,对源存储单元进行分组。
8.根据权利要求1所述的方法,其特征在于,根据所述容量调整比例和源存储单元,确定目标存储单元包括:
根据所述容量调整比例和源存储单元,确定所述目标存储单元的数目;
确定目标存储设备;
获取所述目标存储设备上与所述数目相符、且处于空闲状态的存储单元作为目标存储单元。
9.根据权利要求8所述的方法,其特征在于,确定目标存储设备包括:
当所述配置信息还包括存储设备地址信息时,确定与所述存储设备地址信息相应的目标存储设备;或,
当所述配置信息还包括存储设备标识时,确定与所述存储设备标识相应的目标存储设备;或,
当所述配置信息还包括存储单元标识时,确定与所述存储单元标识相应的目标存储设备。
10.根据权利要求2所述的方法,其特征在于,计算每个源存储单元组的数据总量包括:
获取每个源存储单元组中各个源存储单元的数据量信息;
根据所述各个源存储单元的数据量信息,获取每个源存储单元组的数据总量。
11.根据权利要求1所述的方法,其特征在于,根据确定的数据转移方式,将所述源存储单元上存储的数据转移至所述目标存储单元包括:
获取所述源存储单元的路由信息;
根据所述源存储单元的路由信息,判断源存储单元是否合法;
当所述源存储单元合法时,在所述源存储单元与所述目标存储单元之间建立路由双写关系;
根据确定的数据转移方式,通过所述路由双写关系,将所述源存储单元上存储的数据转移至所述目标存储单元。
12.根据权利要求1所述的方法,其特征在于,根据确定的数据转移方式,将所述源存储单元上存储的数据转移至所述目标存储单元之后,所述方法还包括:
根据所述确定的数据转移方式,将索引值范围与存储单元之间的映射关系修改为转移后的目标存储单元上存储数据对应的索引值范围与所述目标存储单元之间的映射关系。
13.根据权利要求1所述的方法,其特征在于,所述容量调整比例为扩容比例或缩容比例。
14.一种数据存储***的容量调整装置,其特征在于,所述装置包括:
接收模块,用于接收配置信息,所述配置信息包括容量调整比例和源存储单元;
目标存储单元确定模块,用于根据所述容量调整比例和源存储单元,确定目标存储单元,所述目标存储单元是指根据所述容量调整比例和所述源存储单元进行扩容或缩容后的存储单元;
数据转移方式确定模块,用于根据所述源存储单元的当前数据总量,确定所述源存储单元向所述目标存储单元的数据转移方式,不同配置信息确定的数据转移方式不同;
数据转移模块,用于根据确定的数据转移方式,将所述源存储单元上存储的数据转移至所述目标存储单元。
15.根据权利要求14所述的装置,其特征在于,所述数据转移方式确定模块包括:
分组单元,用于根据所述容量调整比例和源存储单元,对所述源存储单元进行分组;
数据总量计算单元,用于计算每个源存储单元组的数据总量;
分配单元,用于将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
16.根据权利要求15所述的装置,其特征在于,所述分配单元还用于当所述源存储单元组中的数据总量不为0时,根据所述源存储单元组中各个存储单元上存储的数据、所述数据总量、所述目标存储单元以及所述源存储单元组对应的索引值范围,计算所述源存储单元组中每个存储单元所存储数据对应的索引值范围的分割点;根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述源存储单元组对应的索引值范围分配至所述源存储单元组对应的中间存储单元;根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述中间存储单元对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
17.根据权利要求15所述的装置,其特征在于,所述分配单元还用于当所述源存储单元组中的数据总量不为0、且所述容量调整比例为扩容100%时,将所述源存储单元组中各个存储单元对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
18.根据权利要求15所述的装置,其特征在于,所述分配单元还用于当所述源存储单元组中的数据总量为0时,根据所述源存储单元组对应的索引值范围和所述目标存储单元,计算所述源存储单元组中每个存储单元对应的索引值范围的分割点;根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述源存储单元组对应的索引值范围分配至所述源存储单元组对应的中间存储单元;根据所述源存储单元组中每个存储单元对应的索引值范围的分割点,将所述中间存储单元对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
19.根据权利要求15所述的装置,其特征在于,所述分配单元还用于当所述源存储单元组中每个存储单元上存储的数据均小于分配后目标存储单元对应的数据量时,将所述源存储单元组对应的索引值范围平均分配至所述源存储单元组对应的目标存储单元。
20.根据权利要求15所述的装置,其特征在于,所述分组单元还用于根据所述容量调整比例,确定与所述容量调整比例相对应的每组内源存储单元的数目;根据确定的每组内源存储单元的数目,对源存储单元进行分组。
21.根据权利要求14所述的装置,其特征在于,所述目标存储单元确定模块包括:
目标存储单元数目确定单元,用于根据所述容量调整比例和源存储单元,确定所述目标存储单元的数目;
目标存储设备确定单元,用于确定目标存储设备;
目标存储单元获取单元,用于获取所述目标存储设备上与所述数目相符、且处于空闲状态的存储单元作为目标存储单元。
22.根据权利要求21所述的装置,其特征在于,所述目标存储设备确定单元还用于当所述配置信息还包括存储设备地址信息时,确定与所述存储设备地址信息相应的目标存储设备;或,所述目标存储设备确定单元还用于当所述配置信息还包括存储设备标识时,确定与所述存储设备标识相应的目标存储设备;或,所述目标存储设备确定单元还用于当所述配置信息还包括存储单元标识时,确定与所述存储单元标识相应的目标存储设备。
23.根据权利要求15所述的装置,其特征在于,所述数据总量计算单元还用于获取每个源存储单元组中各个源存储单元的数据量信息;根据所述各个源存储单元的数据量信息,获取每个源存储单元组的数据总量。
24.根据权利要求14所述的装置,其特征在于,所述数据转移模块还用于获取所述源存储单元的路由信息;根据所述源存储单元的路由信息,判断源存储单元是否合法;当所述源存储单元合法时,在所述源存储单元与所述目标存储单元之间建立路由双写关系;根据确定的数据转移方式,通过所述路由双写关系,将所述源存储单元上存储的数据转移至所述目标存储单元。
25.根据权利要求14所述的装置,其特征在于,所述装置还包括:
映射关系修改模块,用于根据所述确定的数据转移方式,将索引值范围与存储单元之间的映射关系修改为转移后的目标存储单元上存储数据对应的索引值范围与所述目标存储单元之间的映射关系。
26.根据权利要求14所述的装置,其特征在于,所述容量调整比例为扩容比例或缩容比例。
27.一种数据存储***,其特征在于,所述数据存储***包括:容量调整装置和多个存储单元,
所述容量调整装置,用于接收配置信息,所述配置信息包括容量调整比例和源存储单元;根据所述容量调整比例和源存储单元,确定目标存储单元,所述目标存储单元是指根据所述容量调整比例和所述源存储单元进行扩容或缩容后的存储单元;根据所述源存储单元的当前数据总量,确定所述源存储单元向所述目标存储单元的数据转移方式,不同配置信息确定的数据转移方式不同;根据确定的数据转移方式,将所述源存储单元上存储的数据转移至所述目标存储单元;
所述多个存储单元,用于存储数据。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括至少一条指令,所述指令被处理器执行时实现权利要求1-13任一所述的数据存储***的容量调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310488156.4A CN104572684B (zh) | 2013-10-17 | 2013-10-17 | 数据存储***的容量调整方法、装置及数据存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310488156.4A CN104572684B (zh) | 2013-10-17 | 2013-10-17 | 数据存储***的容量调整方法、装置及数据存储*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572684A CN104572684A (zh) | 2015-04-29 |
CN104572684B true CN104572684B (zh) | 2018-12-28 |
Family
ID=53088777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310488156.4A Active CN104572684B (zh) | 2013-10-17 | 2013-10-17 | 数据存储***的容量调整方法、装置及数据存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572684B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487821A (zh) * | 2015-11-30 | 2016-04-13 | 北京奇艺世纪科技有限公司 | 一种存储虚拟化中的数据存储方法、***及装置 |
CN107122126B (zh) * | 2016-12-22 | 2020-09-08 | 华为技术有限公司 | 数据的迁移方法、装置和*** |
CN111414346A (zh) * | 2020-04-30 | 2020-07-14 | 武汉众邦银行股份有限公司 | 一种海量非结构化数据文件分布式颗粒化的存储方法 |
CN111754117B (zh) * | 2020-06-24 | 2024-06-21 | 网银在线(北京)科技有限公司 | 任务下发方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364186A (zh) * | 2008-09-27 | 2009-02-11 | 腾讯科技(深圳)有限公司 | 数据迁移方法、***、数据迁移服务器及数据接口服务器 |
CN101799742A (zh) * | 2009-02-11 | 2010-08-11 | 株式会社日立制作所 | 用于在存储***之间转移精简配置卷的方法和装置 |
CN103067433A (zh) * | 2011-10-24 | 2013-04-24 | 阿里巴巴集团控股有限公司 | 一种分布式存储***的数据迁移方法、设备和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577836B2 (en) * | 2011-03-07 | 2013-11-05 | Infinidat Ltd. | Method of migrating stored data and system thereof |
-
2013
- 2013-10-17 CN CN201310488156.4A patent/CN104572684B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364186A (zh) * | 2008-09-27 | 2009-02-11 | 腾讯科技(深圳)有限公司 | 数据迁移方法、***、数据迁移服务器及数据接口服务器 |
CN101799742A (zh) * | 2009-02-11 | 2010-08-11 | 株式会社日立制作所 | 用于在存储***之间转移精简配置卷的方法和装置 |
CN103067433A (zh) * | 2011-10-24 | 2013-04-24 | 阿里巴巴集团控股有限公司 | 一种分布式存储***的数据迁移方法、设备和*** |
Also Published As
Publication number | Publication date |
---|---|
CN104572684A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106233276B (zh) | 网络可访问块存储装置的协调准入控制 | |
CN102831120B (zh) | 一种数据处理方法及*** | |
KR101502896B1 (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
CN110297699B (zh) | 调度方法、调度器、存储介质及*** | |
CN104881325B (zh) | 一种资源调度方法和资源调度*** | |
US9304824B1 (en) | Method and apparatus for providing isolated virtual space | |
CN102971724B (zh) | 与数据中心环境内的基于单元式虚拟资源的管理有关的方法和装置 | |
CN103383653B (zh) | 云资源管理和调度方法及*** | |
CN104572684B (zh) | 数据存储***的容量调整方法、装置及数据存储*** | |
CN103473334A (zh) | 数据存储、查询方法及*** | |
CN105468435A (zh) | Nfv动态资源分配方法 | |
CN103176849A (zh) | 一种基于资源分类的虚拟机集群的部署方法 | |
CN105893542B (zh) | 一种云存储***中的冷数据文件重分布方法及*** | |
CN101227416A (zh) | 一种通信网络中链路带宽分配方法 | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
CN102937918A (zh) | 一种hdfs运行时数据块平衡方法 | |
CN103885811B (zh) | 虚拟机***全***在线迁移的方法、***与装置 | |
TW201405308A (zh) | 用於s列表分配之系統與方法 | |
CN104021088B (zh) | 日志存储方法和装置 | |
CN107291539A (zh) | 基于资源重要程度的集群程序调度方法 | |
CN105975345A (zh) | 一种基于分布式内存的视频帧数据动态均衡存储管理方法 | |
Moens et al. | Design and evaluation of a hierarchical application placement algorithm in large scale clouds | |
WO2020259191A1 (zh) | 一种数据中心节点分配方法、装置、***及计算机设备 | |
CN109799956A (zh) | 一种存储控制器及io请求处理方法 | |
CN106487854A (zh) | 存储资源分配方法、装置和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |