CN113760172A - 一种分片分配方法、装置及电子设备 - Google Patents

一种分片分配方法、装置及电子设备 Download PDF

Info

Publication number
CN113760172A
CN113760172A CN202010502055.8A CN202010502055A CN113760172A CN 113760172 A CN113760172 A CN 113760172A CN 202010502055 A CN202010502055 A CN 202010502055A CN 113760172 A CN113760172 A CN 113760172A
Authority
CN
China
Prior art keywords
path
disk
node
weight
storage
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.)
Pending
Application number
CN202010502055.8A
Other languages
English (en)
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010502055.8A priority Critical patent/CN113760172A/zh
Publication of CN113760172A publication Critical patent/CN113760172A/zh
Pending legal-status Critical Current

Links

Images

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/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
    • 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/0614Improving the reliability 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/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration

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)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种分片分配方法、装置及电子设备。其中,所述方法包括:针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;按照所述节点权重,从所述多个存储节点中选取存储节点;针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径;将待分配的分片分配至所选取的磁盘路径中。可以提高分布式存储集群的稳定性。

Description

一种分片分配方法、装置及电子设备
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种分片分配方法、装置及电子设备。
背景技术
分布式存储集群中可以包括多个存储节点,每个存储节点中可以包括多个磁盘,索引的各个分片可以按照预设规则,分配至这多个存储设备中的各个磁盘上。相关技术中,出于提高分片分布的离散型的考虑,可以将各个分片均匀的分配至各个存储节点中的各个磁盘上。
但是在分布式存储集群实际工作过程中,各分片存储的数据的数据量可能各不相同,因此不同磁盘内存储的数据的数据量不同。可能使得部分磁盘内还剩余较多存储空间,而另一部分磁盘已经几乎没有剩余的存储空间,导致分布式存储集群无法继续有效地存储数据,即分布式存储集群的稳定性较差。
发明内容
本发明实施例的目的在于提供一种分片分配方法、装置及电子设备,以实现提高分布式存储集群的稳定性。具体技术方案如下:
在本发明实施例的第一方面,提供了一种分片分配方法,所述方法包括:
针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;
按照所述节点权重,从所述多个存储节点中选取存储节点,每个存储节点被选取的概率与该存储节点的所述节点权重正相关;
针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;
按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,每个磁盘路径被选取的概率与该磁盘路径的所述路径权重正相关;
将待分配的分片分配至所选取的磁盘路径中。
在一种可能的实施例中,所述方法还包括:
获取当前时序之前的至少一个时序的已分配的分片的平均大小;
按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值;
所述将待分配的分片分配至所选取的磁盘路径中,包括:
从所选取的磁盘路径中选择所述预估值大小的存储空间,分配至待分配的分片。
在一种可能的实施例中,所述至少一个时序包括至少两个时序;
所述按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值,包括:
按照所述至少两个时序的已分配的分片的平均大小,计算已分配的分片的平均大小随时序变化的变化幅度;
按照所述变化幅度,预测当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述按照所述变化幅度,预测当前时序的分片的大小的预估值,包括:
按照所述变化幅度,对所述至少两个时序中一个时序的已分配的分片的平均大小进行线性插值,得到当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述节点权重与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关,所述有效磁盘路径为剩余存储空间大于所述预估值的磁盘路径;
所述针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,包括:
针对所选取的存储节点中每个有效磁盘路径,计算该有效磁盘路径的路径权重;
所述按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,包括:
按照所述路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
在本发明实施例的第二方面,提供了一种分片分配装置,所述装置包括:
节点权重计算模块,用于针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;
第一轮盘赌模块,用于按照所述节点权重,从所述多个存储节点中选取存储节点,每个存储节点被选取的概率与该存储节点的所述节点权重正相关;
路径权重计算模块,用于针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;
第二轮盘赌模块,用于按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,每个磁盘路径被选取的概率与该磁盘路径的所述路径权重正相关;
分片分配模块,用于将待分配的分片分配至所选取的磁盘路径中。
在一种可能的实施例中,所述装置还包括分片大小预估模块,用于获取当前时序之前的至少一个时序的已分配的分片的平均大小;
按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值;
所述分片分配模块,具体用于从所选取的磁盘路径中选择所述预估值大小的存储空间,分配至待分配的分片。
在一种可能的实施例中,所述至少一个时序包括至少两个时序;
所述分片大小预估模块,具体用于按照所述至少两个时序的已分配的分片的平均大小,计算已分配的分片的平均大小随时序变化的变化幅度;
按照所述变化幅度,预测当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述分片大小预估模块,具体用于按照所述变化幅度,对所述至少两个时序中一个时序的已分配的分片的平均大小进行线性插值,得到当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述节点权重与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关,所述有效磁盘路径为剩余存储空间大于所述预估值的磁盘路径;
所述路径权重计算模块,具体用于针对所选取的存储节点中每个有效磁盘路径,计算该有效磁盘路径的路径权重;
所述第二轮盘赌模块,具体用于按照所述路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
在本发明实施例的第三方面,提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本发明实施例提供的时序分片分配方法、装置及电子设备,可以通过轮盘赌算法使得分片在存储节点以及磁盘路径两个层面上,可以是按照剩余的存储空间进行分配的,并同时保持一定的离散度。降低因各分片存储数据的数据量不同,导致的分布式存储集群中负载不均衡的可能性,有效提高了分布式存储集的稳定性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式存储集群的一种结构示意图;
图2为本发明实施例提供的分片分配方法的一种流程示意图;
图3为本发明实施例提供的分片分配方法的另一种流程示意图;
图4a为本发明实施例提供的分片分配装置的一种结构示意图;
图4b为本发明实施例提供的分片分配装置的另一种结构示意图;
图5为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更清楚的对本发明实施例提供的时序分片分配方法进行说明,下面将对一种可能的应用场景进行示例性的说明,该示例性仅是本发明实施例提供的时序分片分配方法的一种可能的应用场景,在其他可能的实施例中,本发明实施例提供的时序分片分配方法也可以应用于其他可能的应用场景,本示例对此不作限制。
参见图1,图1所示为本发明实施例提供的ElasticSearch(一种基于开源工具包Lucene的分布式、高扩展、高实时的全文搜索引擎,下文简称ES)集群的结构示意图,其中包括主节点101以及存储节点102。
主节点101用于对存储节点102进行管理,存储节点102用于存储数据。为了便于访问存储于存储节点102中的数据,需要建立相应的索引。在创建新的索引时,往往有历史已创建并使用的与之有一定联系的索引作为参照,例如,常见的ELK(ElasticSearch,Logstash,Kibana,一种使用ElasticSearch,Logstash,Kibana这三种开源软件的数据分析、搜索平台)使用场景下,通过日志数据生成的ES索引就具有时间序列特征相关联的特性,具体表现为生成的索引会按照时序(年份、季度、月份、星期、日等)进行划分,即生成索引名称可以为如下所示的结构:
Figure BDA0002525132170000061
其中,index1time1表示第1个时间序列的第1类索引的名称,index1timej表示第1个时间序列的第j类索引的名称,indexitimej表示第j个时间序列的第i类索引的名称,依次类推。该示例中,ES集群中有n*m个索引,索引名称indexitimej由索引类别名称indexi加上时间序列timej构成,每一行索引集合之间indexitime1、indexitimej也有一定的数据关联性。可以理解的是,这些索引名称仅是一种索引命名方式,在其他可能的示例中,索引也可以是按照其他方式进行命名的。i的取值范围为[1,n]内的任意正整数,j的取值范围为[1,m]内的任意正整数。
假设ES集群中包括有k个存储节点,每个存储节点有l个磁盘,k、l可以为任一大于1的正整数,每个磁盘具有自己的磁盘路径,则ES集群的磁盘路径结构可以如下所示:
Figure BDA0002525132170000062
其中,
Figure BDA0002525132170000063
表示第1个存储节点中的第1个磁盘路径的实际位置,以及第1个节点第1个磁盘路径下可用磁盘空间的大小,
Figure BDA0002525132170000064
表示第1个存储节点中的第j个磁盘路径的实际位置,以及第1个节点第j个磁盘路径下可用磁盘空间的大小,dataPathi j表示第i存储节点中的第j个磁盘路径的实际位置,以及第i个节点第j个磁盘路径下可用磁盘空间的大小,依次类推。i的取值范围为[1,n]内的任意正整数,j的取值范围为[1,m]内的任意正整数。
假设上述n*m个索引的分片已经被均匀地分配至上述k*l个磁盘路径中。则在第m+1个时间序列时,需要分配index1timem+1…indexntimem+1共计n个新的索引的分片。由于第1个到第m个时间序列的n*m个索引中的分片所存储的数据的数据量可能各不相同,因此上述k*l个磁盘路径各自的剩余空间各不相同,一部分磁盘路径可能剩余较多的存储空间,而另一部分磁盘路径可能剩余较少的存储空间,如果将n个新的索引的分片继续均分的分配至上述k*l个磁盘路径中,则可能导致该一分部分磁盘路径的存储能力没有充分被利用,而该另一部分磁盘路径存储压力过大,即各磁盘路径间负载失衡。
基于此,本发明实施例提供了一种分片分配方法,可以如图2所示,包括:
S201,针对多个存储节点中的每个存储节点,计算该存储节点的节点权重。
S202,按照节点权重,从多个存储节点中选取存储节点。
S203,针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重。
S204,按照路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径。
S205,将待分配的分片分配至所选取的磁盘路径中。
选用该实施例,可以通过轮盘赌算法使得分片在存储节点以及磁盘路径两个层面上,可以是按照剩余的存储空间进行分配的,并同时保持一定的离散度。降低因各分片存储数据的数据量不同,导致的分布式存储集群中负载不均衡的可能性,有效提高了分布式存储集的稳定性。
其中,在S201中,节点权重与存储节点的剩余存储空间正相关,并且与该存储节点已经分配的分片数目负相关。即在不考虑其他因素的影响下,剩余存储空间越多的存储节点的节点权重越高,剩余存储空间越少的存储节点的节点权重越低。同理,在不考虑其他因素的影响下,已经分配的分片数目越多,则节点权重越低,已经分配的分片数目越少,则节点权重越高。
示例性的,在一种可能的实施例中,可以按照下式计算一个存储节点的节点权重的:
Figure BDA0002525132170000081
其中,Fweighti为第i个存储节点的节点权重,nodeTotalSpacei为第i个存储节点的剩余存储空间,totalSpace为所有存储节点的剩余存储空间的总和,nodeTotalShardCounti为已经分配至第i个存储节点的分片的数量,totalShardCount为已经分配的分片的总数。α、β为预设系数,其中α为正实数,β为负实数,可以根据实际需求设定α、β的具体数值,例如α=1.5,β=-0.5。可以理解的是,该公式仅是一种可能的节点权重计算公式,在其他可能的实施例中,也可以是通过其他公式计算得到节点权重的,本实施例对此不做限制。
在S202中,选取的方式可以根据实际需求的而不同,在一种可能的实施例中,假设节点权重是归一化的权重,即所有存储节点的节点权重之和为1。则可以随机生成一个取值范围为0到1的随机数,并确定使得该随机数小于等于
Figure BDA0002525132170000082
成立的最小正整数x,选取第x个存储节点。
示例性的,假设一共有四个存储节点,Fweight1=0.1,Fweight2=0.2,Fweight3=0.3,Fweight4=0.4,随机生成的随机数为0.5,由于
Figure BDA0002525132170000083
Figure BDA0002525132170000084
因此使得随机数小于等于
Figure BDA0002525132170000085
成立的最小正整数为3,因此选取第3个存储节点。
在S203中,路径权重与磁盘路径的剩余存储空间正相关,并且与磁盘路径已经分配的分片数目负相关。关于正相关与负相关,可以参见前述S202中的相关说明,在此不再赘述。
关于路径权重的计算方式,根据应用场景的不同可以不同,示例性的,在一种可能的实施例中,可以按照下式计算一个磁盘路径的路径权重的:
Figure BDA0002525132170000091
其中,
Figure BDA0002525132170000092
为第i个存储节点中第j个磁盘路径的路径权重,
Figure BDA0002525132170000093
为第i个存储节点中第j个磁盘路径的剩余存储空间,nodeitotalSpace为第i个存储节点的剩余存储空间,
Figure BDA0002525132170000094
为已经分配至第i个存储节点中第j个磁盘路径的分片的数量,totalShardCounti为已经分配至第i个存储节点的分片的总数。ε、δ为预设系数,其中ε为正实数,δ为负实数,ε可以和前述α相等,也可以不等,δ可以和前述β相等,也可以不等。例如在一种可能的实施例中ε=1.5,δ=-0.5,在另一种可能的实施例中,ε=1.3,δ=-0.3。可以理解的是,该公式仅是一种可能的节点权重计算公式,在其他可能的实施例中,也可以是通过其他公式计算得到节点权重的,本实施例对此不做限制。
Figure BDA0002525132170000095
可以用于表示在所有时间序列中已经分配至第i个存储节点中第j个磁盘路径的分片数量,也可以用于表示在当前时间序列中已经分配至第i个存储节点中第j个磁盘路径的分片的数量。当
Figure BDA0002525132170000096
用于表示当前时间序列中已经分配至第i个存储节点中第j个磁盘路径的分片的数量,则相应的totalShardCounti用于表示当前时间序列中已经分配至第i个存储节点的分片的数量。
在S204中,选取磁盘路径的方式可以参见前述S202中关于存储节点的选取的相关描述,在此不再赘述。
仍以前述ELK应用场景为例,由于需要分配多个时序的索引中的分片,因此如果为当前时序的分片分配的存储空间过小,则可能导致当前时序的数据无法被有效存储,而如果为当前时间序列的分片分配的存储空间过大,则受限制存储集群的存储能力,当前时序之后的时序的数据可能无法被有效存储。因此,如何合理分配各时序的分片成为亟待解决的技术问题。
基于此,本发明实施例提供了一种分片分配方法,可以参见图3,图3所示为本发明实施例提供的分片分配方法的另一种流程示意图,可以包括:
S301,获取当前时序之前的至少一个时序的分片的平均大小;
S302,按照所述至少一个时序的分片的平均大小,预测当前时序的分片的大小的预估值;
S303,针对多个存储节点中的每个存储节点,计算该存储节点的节点权重。
S304,按照节点权重,从多个存储节点中选取存储节点。
S305,针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重。
S306,按照路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径。
S307,从所选取的磁盘路径中选择预估值大小的存储空间,分配至待分配的分片。
选用该实施例,可以通过历史时序的分片大小,合理预估当前时序的分片的大小,以避免为当前时序的分片分配过大或过小的存储空间。
其中,在S301中,至少一个时序可以是一个时序,也可以是两个及两个以上时序。一种特殊情况,假如当前时序为按时间先后顺序排序时的第二个时序,此时当前时序之前只存在一个时序,因此在该情况下,当前时序之前的至少一个时序为当前时序之前的一个时序,即按时间先后顺序排序的第一个时序。
在S302中,可以分为两种情况进行说明。对于至少一个时序只包括一个时序的情况,可以是统计至少一个时序的分片的平均大小,将该平均大小作为当前时序的分片的大小的预估值。
对于至少一个时序包括至少两个时序的情况,可以是按照至少一个时序所包括的至少两个时序的分片的平均大小,计算分片的平均大小随时序的变化幅度。按照变化幅度,预测当前时序的分片的大小的预估值。可以理解的是,可以认为分片的大小随时序的变化幅度在一定时间内是保持不变的,因此可以按照变化幅度,预测当前时序的分片的大小的预估值。
示例性的,可以是按照变化幅度,对至少一个时序中一个时序的分片的平均大小进行线性插值,得到当前时序的分片的大小的预估值。例如,假设当前时序为按照时间先后顺序排序时的第三个时序,至少一个时序包括按照时间先后顺序排序时的第二个时序以及按照时间先后顺序排序时的第一个时序,假设按照时间先后顺序排序时的第一个时序的分片的平均大小为Ave1,按照时间先后顺序排序时的第二个时序的分片的平均大小为Ave2,则变化幅度为Ave2-Ave1,当前时序的分片的大小的预估值可以表示为Ave2+Ave2-Ave1,即2*Ave2+Ave1。
假设当前时序为按照时间先后顺序排序时的第y个时序,则预估值的计算,在一种可能的实施例中可以参见下式:
Figure BDA0002525132170000111
其中,indexxtimey+1estShardSiz为第y+1个时序中第x个索引的分片的大小的预估值,indexxtimeyAveShardSize为第y个时序中第x索引的分片的大小的平均值,indexxtimey-1AveShardSize为第y-1个时序中第x索引的分片的大小的平均值。
Figure BDA0002525132170000112
为第nodeId个节点第j个存储路径下可用磁盘空间的大小,nodeId可以为所有存储节点中剩余存储空间最小的存储节点的序号,也可可以是[1,n]内的任一正整数。
关于S303-S306,与前述S201-S204相同,可以参见前述S201-S204的相关描述,在此不再赘述。在S307中,由于需要从选取的磁盘路径中选择预估值大小的存储空间,分配至待分配的分片,因此理论上该磁盘路径剩余的存储空间应当大于预估值。
如果选取的磁盘路径剩余的存储空间小于预估值,则可能导致无法正常分配足够的存储空间至待分配的分片。基于此,在一种可能的实施例中,在分片分配的过程中可以不考虑剩余存储空间小于预估值的磁盘路径。
为描述方便,下文称剩余存储空间大于预估值的磁盘路径为有效磁盘路径。则节点权重可以是与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关。在计算路径权重时,只计算所选取的存储节点中有效磁盘路径的路径权重。在选取磁盘路径时,为按照路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
以前述节点权重和路径权重的计算为例,在实施例中,totalSpace可以是按照下式计算得到的:
Figure BDA0002525132170000121
其中,nodei=ture在第i个存储节点中存在有效磁盘路径时成立,在第i个存储节点中不存在有效磁盘路径时不成立。
totalShardCount可以是按照下式计算得到的:
Figure BDA0002525132170000122
nodeiTotalSpace可以是按照下式计算得到的:
Figure BDA0002525132170000123
其中,
Figure BDA0002525132170000124
在第i个存储节点的第j个磁盘路径为有效磁盘路径时成立,在第i个存储节点的第j个磁盘路径不为有效路径时不成立。
TotalShardCounti可以是按照下式计算得到的:
Figure BDA0002525132170000125
参见图4a,图4a所示为本发明实施例提供的分片分配装置的一种结构示意图,可以包括:
节点权重计算模块401,用于针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;
第一轮盘赌模块402,用于按照所述节点权重,从所述多个存储节点中选取存储节点,每个存储节点被选取的概率与该存储节点的所述节点权重正相关;
路径权重计算模块403,用于针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;
第二轮盘赌模块404,用于按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,每个磁盘路径被选取的概率与该磁盘路径的所述路径权重正相关;
分片分配模块405,用于将待分配的分片分配至所选取的磁盘路径中。
在一种可能的实施例中,如图4b,所述装置还包括分片大小预估模块406,用于获取当前时序之前的至少一个时序的已分配的分片的平均大小;
按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值;
所述分片分配模块405,具体用于从所选取的磁盘路径中选择所述预估值大小的存储空间,分配至待分配的分片。
在一种可能的实施例中,所述至少一个时序包括至少两个时序;
所述分片大小预估模块406,具体用于按照所述至少两个时序的已分配的分片的平均大小,计算已分配的分片的平均大小随时序变化的变化幅度;
按照所述变化幅度,预测当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述分片大小预估模块406,具体用于按照所述变化幅度,对所述至少两个时序中一个时序的已分配的分片的平均大小进行线性插值,得到当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述节点权重与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关,所述有效磁盘路径为剩余存储空间大于所述预估值的磁盘路径;
所述路径权重计算模块403,具体用于针对所选取的存储节点中每个有效磁盘路径,计算该有效磁盘路径的路径权重;
所述第二轮盘赌模块404,具体用于按照所述路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
本发明实施例还提供了一种电子设备,如图5所示,包括:
存储器501,用于存放计算机程序;
处理器502,用于执行存储器501上所存放的程序时,实现如下步骤:
针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;
按照所述节点权重,从所述多个存储节点中选取存储节点,每个存储节点被选取的概率与该存储节点的所述节点权重正相关;
针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;
按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,每个磁盘路径被选取的概率与该磁盘路径的所述路径权重正相关;
将待分配的分片分配至所选取的磁盘路径中。
在一种可能的实施例中,所述方法还包括:
获取当前时序之前的至少一个时序的已分配的分片的平均大小;
按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值;
所述将待分配的分片分配至所选取的磁盘路径中,包括:
从所选取的磁盘路径中选择所述预估值大小的存储空间,分配至待分配的分片。
在一种可能的实施例中,所述至少一个时序包括至少两个时序;
所述按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值,包括:
按照所述至少两个时序的已分配的分片的平均大小,计算已分配的分片的平均大小随时序变化的变化幅度;
按照所述变化幅度,预测当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述按照所述变化幅度,预测当前时序的分片的大小的预估值,包括:
按照所述变化幅度,对所述至少两个时序中一个时序的已分配的分片的平均大小进行线性插值,得到当前时序的待分配的分片的大小的预估值。
在一种可能的实施例中,所述节点权重与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关,所述有效磁盘路径为剩余存储空间大于所述预估值的磁盘路径;
所述针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,包括:
针对所选取的存储节点中每个有效磁盘路径,计算该有效磁盘路径的路径权重;
所述按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,包括:
按照所述路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一时序分片分配方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一时序分片分配方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种分片分配方法,其特征在于,所述方法包括:
针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;
按照所述节点权重,从所述多个存储节点中选取存储节点,每个存储节点被选取的概率与该存储节点的所述节点权重正相关;
针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;
按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,每个磁盘路径被选取的概率与该磁盘路径的所述路径权重正相关;
将待分配的分片分配至所选取的磁盘路径中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取当前时序之前的至少一个时序的已分配的分片的平均大小;
按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值;
所述将待分配的分片分配至所选取的磁盘路径中,包括:
从所选取的磁盘路径中选择所述预估值大小的存储空间,分配至待分配的分片。
3.根据权利要求2所述的方法,其特征在于,所述至少一个时序包括至少两个时序;
所述按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值,包括:
按照所述至少两个时序的已分配的分片的平均大小,计算已分配的分片的平均大小随时序变化的变化幅度;
按照所述变化幅度,预测当前时序的待分配的分片的大小的预估值。
4.根据权利要求3所述的方法,其特征在于,所述按照所述变化幅度,预测当前时序的分片的大小的预估值,包括:
按照所述变化幅度,对所述至少两个时序中一个时序的已分配的分片的平均大小进行线性插值,得到当前时序的待分配的分片的大小的预估值。
5.根据权利要求2所述的方法,其特征在于,所述节点权重与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关,所述有效磁盘路径为剩余存储空间大于所述预估值的磁盘路径;
所述针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,包括:
针对所选取的存储节点中每个有效磁盘路径,计算该有效磁盘路径的路径权重;
所述按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,包括:
按照所述路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
6.一种时序分片分配装置,其特征在于,所述装置包括:
节点权重计算模块,用于针对所述多个存储节点中的每个存储节点,计算该存储节点的节点权重,所述节点权重与该存储节点的剩余存储空间正相关,与该存储节点已经分配的分片数目负相关;
第一轮盘赌模块,用于按照所述节点权重,从所述多个存储节点中选取存储节点,每个存储节点被选取的概率与该存储节点的所述节点权重正相关;
路径权重计算模块,用于针对所选取的存储节点的每个磁盘路径,计算该磁盘路径的路径权重,所述路径权重与该磁盘路径的剩余存储空间正相关,与该磁盘路径已经分配的分片数目负相关;
第二轮盘赌模块,用于按照所述路径权重,从所选取的存储节点的各个磁盘路径中选取磁盘路径,每个磁盘路径被选取的概率与该磁盘路径的所述路径权重正相关;
分片分配模块,用于将待分配的分片分配至所选取的磁盘路径中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括分片大小预估模块,用于获取当前时序之前的至少一个时序的已分配的分片的平均大小;
按照所述至少一个时序的已分配的分片的平均大小,预测当前时序的待分配的分片的大小的预估值;
所述分片分配模块,具体用于从所选取的磁盘路径中选择所述预估值大小的存储空间,分配至待分配的分片。
8.根据权利要求7所述的装置,其特征在于,所述至少一个时序包括至少两个时序;
所述分片大小预估模块,具体用于按照所述至少两个时序的已分配的分片的平均大小,计算已分配的分片的平均大小随时序变化的变化幅度;
按照所述变化幅度,预测当前时序的待分配的分片的大小的预估值。
9.根据权利要求8所述的装置,其特征在于,所述分片大小预估模块,具体用于按照所述变化幅度,对所述至少两个时序中一个时序的已分配的分片的平均大小进行线性插值,得到当前时序的待分配的分片的大小的预估值。
10.根据权利要求7所述的装置,其特征在于,所述节点权重与该存储节点中所有有效磁盘路径的剩余存储空间之和正相关,所述有效磁盘路径为剩余存储空间大于所述预估值的磁盘路径;
所述路径权重计算模块,具体用于针对所选取的存储节点中每个有效磁盘路径,计算该有效磁盘路径的路径权重;
所述第二轮盘赌模块,具体用于按照所述路径权重,从所选取的存储节点的有效磁盘路径中选取磁盘路径。
11.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN202010502055.8A 2020-06-04 2020-06-04 一种分片分配方法、装置及电子设备 Pending CN113760172A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010502055.8A CN113760172A (zh) 2020-06-04 2020-06-04 一种分片分配方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010502055.8A CN113760172A (zh) 2020-06-04 2020-06-04 一种分片分配方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN113760172A true CN113760172A (zh) 2021-12-07

Family

ID=78783753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010502055.8A Pending CN113760172A (zh) 2020-06-04 2020-06-04 一种分片分配方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113760172A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115857837A (zh) * 2023-02-27 2023-03-28 中国华能集团清洁能源技术研究院有限公司 一种大数据环境下的数据分布方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473365A (zh) * 2013-09-25 2013-12-25 北京奇虎科技有限公司 一种基于hdfs的文件存储方法、装置及分布式文件系统
CN104484134A (zh) * 2014-12-23 2015-04-01 北京华胜天成科技股份有限公司 分布式存储的磁盘分配方法及装置
CN106254516A (zh) * 2016-08-31 2016-12-21 北京小米移动软件有限公司 负载均衡方法及装置
CN106527981A (zh) * 2016-10-31 2017-03-22 华中科技大学 一种基于配置的自适应分布式存储系统的数据分片方法
CN107104992A (zh) * 2016-02-19 2017-08-29 杭州海康威视数字技术股份有限公司 一种视频云存储的存储资源分配方法和装置
CN109739440A (zh) * 2018-12-28 2019-05-10 武汉市烽视威科技有限公司 分布式共享存储方法、存储介质、电子设备及系统
CN109815048A (zh) * 2019-01-31 2019-05-28 新华三技术有限公司成都分公司 数据读取方法、装置及设备
CN110069219A (zh) * 2019-04-23 2019-07-30 深信服科技股份有限公司 一种数据存储方法、系统及电子设备和存储介质
CN110781006A (zh) * 2019-10-28 2020-02-11 重庆紫光华山智安科技有限公司 负载均衡方法、装置、节点及计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473365A (zh) * 2013-09-25 2013-12-25 北京奇虎科技有限公司 一种基于hdfs的文件存储方法、装置及分布式文件系统
CN104484134A (zh) * 2014-12-23 2015-04-01 北京华胜天成科技股份有限公司 分布式存储的磁盘分配方法及装置
CN107104992A (zh) * 2016-02-19 2017-08-29 杭州海康威视数字技术股份有限公司 一种视频云存储的存储资源分配方法和装置
CN106254516A (zh) * 2016-08-31 2016-12-21 北京小米移动软件有限公司 负载均衡方法及装置
CN106527981A (zh) * 2016-10-31 2017-03-22 华中科技大学 一种基于配置的自适应分布式存储系统的数据分片方法
CN109739440A (zh) * 2018-12-28 2019-05-10 武汉市烽视威科技有限公司 分布式共享存储方法、存储介质、电子设备及系统
CN109815048A (zh) * 2019-01-31 2019-05-28 新华三技术有限公司成都分公司 数据读取方法、装置及设备
CN110069219A (zh) * 2019-04-23 2019-07-30 深信服科技股份有限公司 一种数据存储方法、系统及电子设备和存储介质
CN110781006A (zh) * 2019-10-28 2020-02-11 重庆紫光华山智安科技有限公司 负载均衡方法、装置、节点及计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115857837A (zh) * 2023-02-27 2023-03-28 中国华能集团清洁能源技术研究院有限公司 一种大数据环境下的数据分布方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN104899286B (zh) 分布式内容存储和取回
US10169090B2 (en) Facilitating tiered service model-based fair allocation of resources for application servers in multi-tenant environments
US8726290B2 (en) System and/or method for balancing allocation of data among reduce processes by reallocation
US9633311B2 (en) Decision tree learning
US20180314706A1 (en) Iterative object scanning for information lifecycle management
CN110716796B (zh) 智能任务调度方法及装置、存储介质、电子设备
CN108009261B (zh) 一种数据同步方法、装置及电子设备
US9111235B2 (en) Method and system to evaluate risk of configuration changes in an information system
JP2012529704A (ja) 検索負荷に応じて平衡化されたフィンガープリントのデータベースを有するメディア識別システム
WO2012105969A1 (en) Estimating a performance characteristic of a job using a performance model
CN111190696A (zh) Docker容器的部署方法、系统、设备及存储介质
US10819821B2 (en) Method and system for allocating content using a content-based centrality metric
CN107203623B (zh) 网络爬虫系统的负载均衡调节方法
US9760836B2 (en) Data typing with probabilistic maps having imbalanced error costs
CN113760172A (zh) 一种分片分配方法、装置及电子设备
US10313457B2 (en) Collaborative filtering in directed graph
US20190258527A1 (en) Predicting capacity of shared virtual machine resources
CN112579633A (zh) 一种数据检索方法、装置、设备及存储介质
CN116010450A (zh) 资源分配的方法、装置、电子设备和计算机可读介质
CN116091111A (zh) 产品需求量预测方法、装置、电子设备及存储介质
CN110210222B (zh) 数据处理方法、数据处理装置和计算机可读存储介质
CN116308721B (zh) 一种信息监督管理方法、装置、电子设备及存储介质
CN112783722B (zh) 一种区块链安全监测方法、装置、电子设备及存储介质
CN112307025B (zh) 一种分布式索引的构建方法及装置
CN111127064B (zh) 用户社会属性的确定方法、装置与电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination