一种基于配置的自适应分布式存储系统的数据分片方法技术方案

技术编号:14888030 阅读:106 留言:0更新日期:2017-03-28 18:16
本发明专利技术公开了一种基于配置的自适应分布式存储系统的数据分片方法,将分片相关信息作为配置信息保存在配置信息存储模块;自动对配置信息进行维护和更新;拟上传数据时,根据配置获得当前所有分片的节点状态、磁盘容量、已写入数据量的信息;根据这些信息采用随机算法计算确定最优的分片序号;为保证数据的安全性,每个分片都配置为一个多副本的集群,数据块副本分发到分片内的多个节点上存储;解决了分布式存储系统中数据重新分布造成的数据震荡、无法实时感知磁盘容量的问题。

【技术实现步骤摘要】

本专利技术属于分布式存储
,更具体地,涉及一种基于配置的自适应分布式存储系统的数据分片方法
技术介绍
在现有分布式存储领域的分布式存储系统中,多以固定的大小将数据切分成数据块;根据数据提取特征值,对特征值按照指定的分片算法计算出分片序号,按照分片序号将数据分发到相应的节点上。为保证数据安全,采取数据块的多副本方式,将副本分发到不同节点。在对数据特征值计算分片序号时,采取一致性哈希算法,根据集群节点数目计算得到固定的特征值分段范围,每个特征值落入指定的分段范围内,即为指定的分片序号;或者采取round-robin随机分配算法,近似平衡的随机从集群中取出一个节点指定分片序号;或者采取改进的加权随机分配算法,每个节点拥有一定的权重,加上权重后随机计算获得指定分片序号。采取哈希算法的分片方法需要存储系统集群的节点数目相对稳定,因为每次计算都需要节点数目也即分片数目作为参数,而当节点数目发生变化时,计算参数发生了变化,数据分片的规律也会随之改变,需要将数据切片进行重新分布;在数据重新分布时会在每个分片之间形成数据流动;当数据量较大时,不仅数据重新分布耗时过长,而且内部流量过大,各节点处于频繁的数据读写中,易引起数据震荡,导致系统的整体响应降低;而采取随机算法的分片方法,包括round-robin随机分配算法和改进的加权随机分配算法,均未考虑对分片节点的存储容量的感知,存储系统无法得知分片节点磁盘空间被其他外部数据所占用带来的影响,需要人为或通过外部程序来判断分片节点剩余容量以避免存储发生错误。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于配置的自适应分布式存储系统的数据分片方法,其目的在于解决分布式存储系统中数据重新分布造成的数据震荡的问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于配置的自适应分布式存储系统的数据分片方法,所基于的分布式存储系统包括存储代理服务器、分片集群和配置信息存储模块;所述数据分片方法包括以下步骤:(1)将拟上传到分布式存储系统的数据发送到存储代理服务器;并通过存储代理服务器从配置信息存储模块查询存储节点的配置信息,获取当前所有分片的IP地址、存储容量、最大阈值、已存储数据大小以及是否可写入;(2)通过存储代理服务器找出所有可写入的分片;并根据可写入的分片的已存储数据量、存储容量和阈值,建立可写入分片列表;(3)采用随机算法从可写入分片列表中选取待写入的分片;其中,随机算法可采用round-robin随机分配算法,即轮询调度算法,以循环的方式依次选出列表中不同的分片;(4)通过存储代理服务器根据将拟上传数据写入待写入的分片;(5)当数据写入动作完成后,通过所述分片将存储数据对应的ID、所占用存储空间大小反馈给存储代理服务器;(6)通过存储代理服务器根据所占用存储空间大小更新配置信息存储模块中存储的配置信息;所述配置信息包括分片被占用的存储空间的大小;当分片被占用存储空间的大小超过阈值,则将所述分片设置为不接受写入;其中,阈值根据所述分片的最大容量以及拟预留的冗余容量确定。优选地,上述基于配置的自适应分布式存储系统的数据分片方法,通过如下步骤对分布式存储系统进行扩展:(i)添加新的分片集群,并通过存储代理服务器更新配置信息存储模块所保存的存储节点的配置信息,包括添加的分片的存储容量和阈值;(ii)拟上传数据时,存储代理服务器根据配置信息自适应指定待写入的分片,对系统响应无影响,可持续在线运行;并且,是在选定分片后将拟上传直接写入分片,不存在分片之间的数据块迁移,克服了数据迁移引起数据震荡所导致的系统整体性能下降的缺陷。优选地,上述基于配置的自适应分布式存储系统的数据分片方法,其步骤(3)包括如下子步骤:(3.1)根据可写入的分片列表中各分片的已存储数据量、存储容量和阈值,加上待写入数据的大小,计算各分片所剩余空间的大小;(3.2)按剩余空间大小排序,选取剩余空间最多的前几个分片组成列表;(3.3)采用随机算法在列表中随机选取一个分片作为待写入分片。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本专利技术提供的基于配置的自适应分布式存储系统的数据分片方法,将分片节点IP地址、存储容量、最大阈值、已存储数据大小、是否可写入状态等分片信息作为配置信息保存在配置信息存储模块;拟写入数据时,通过存储代理服务器根据配置信息计算得到指定的分片序号,将数据块分发到指定分片上;而现有技术是使用一致性哈希或随机分配算法计算数据分片,使得各个节点获得数据写入的机会近似相同,然而这种规则在分片节点发生变动时,会将所有数据重新分布到剩余分片上以满足近似平衡的要求,从而导致大量数据在节点间来回迁移,引起系统性能急剧下降;而本专利技术通过将拟上传数据直接写入指定分片,数据无需在分片之间迁移,由此消除了数据迁移所导致的数据震荡,由此克服据震荡所导致的系统响应性能下降的缺陷;(2)本专利技术提供的基于配置的自适应分布式存储系统的数据分片方法,在数据写入后将存储数据对应的ID、所占用存储空间大小反馈给存储代理服务器,实现了对分片信息的自动更新;由存储代理服务器根据存储数据消耗的空间更新配置信息,判断是否超过分片的阈值,更新是否可写入状态;由此获取到准确的可写入分片的信息,在可写入分片中采用随机算法指定分片,数据直接写入分片,而无需如在分片之间迁移;(3)本专利技术提供的基于配置的自适应分布式存储系统的数据分片方法,当存储空间不足时,通过增加分片集群、并根据新增加的分片的信息更新配置信息来进行扩展,实现了在不影响在线服务的情况下对系统的实时扩展;在此过程中,存储代理节点服务器通过实时的查询配置信息,自动发现配置信息的改变并做出适应,新增分片对系统的可持续在线运行没有影响;并且由于存储代理服务器能够自动感知和适应新的配置信息,做到了扩展对应用完全透明;(4)本专利技术提供的基于配置的自适应分布式存储系统的数据分片方法,通过设置存储容量、阈值和可写入状态,并由存储代理服务器根据上传数据消耗的存储空间对配置信息进行实时更新,消除了因存储节点空间被占满无法写入导致的写入出错,提高了存储效率。附图说明图1是实施例中基于配置进行数据分片的分布式存储系统示意图;图2是实施例提供的基于配置的自适应分布式存储系统的数据分片方法的流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术实施例提供的基于配置的自适应分布式存储系统的数据分片方法,基于图1所示的分布式存储系统,包括存储代理服务器、分片集群和配置信息存储模块;数字1标识的路径是指在写入数据时,存储代理服务器向配置信息存储模块查询分片相关信息;数字2标识的路径是指配置信息存储模块返回当前所有分片信息;数字3标识的路径是指存储代理服务器根据分片信息计算并选取一个可写入的分片,将数据直接写入该分片;数字4标识的路径是指分片存储数据后向存储代理服务器返回结果;数字5标识的路径是指存储代理服务器根据分本文档来自技高网...
一种基于配置的自适应分布式存储系统的数据分片方法

【技术保护点】
一种基于配置的自适应分布式存储系统的数据分片方法,其特征在于,所述自适应分布式存储系统包括存储代理服务器、分片集群和配置信息存储模块;所述数据分片方法包括以下步骤:(1)将拟上传到分布式存储系统的数据发送到存储代理服务器;并通过存储代理服务器从配置信息存储模块查询存储节点的配置信息,获取当前所有分片的IP地址、存储容量、最大阈值、已存储数据大小以及是否可写入;(2)通过存储代理服务器找出所有可写入的分片;并根据可写入的分片的已存储数据量、存储容量和阈值,建立可写入分片列表;(3)采用随机算法从可写入分片列表中选取待写入的分片;(4)通过存储代理服务器根据将拟上传数据写入待写入的分片;(5)当数据写入动作完成,通过所述分片将存储数据对应的ID、所占用存储空间大小反馈给存储代理服务器;(6)通过存储代理服务器根据所占用存储空间大小更新配置信息存储模块中存储的配置信息;所述配置信息包括分片被占用的存储空间的大小;当分片被占用存储空间的大小超过阈值,则将所述分片设置为不接受写入;所述阈值根据所述分片的最大容量以及拟预留的冗余容量确定。

【技术特征摘要】
1.一种基于配置的自适应分布式存储系统的数据分片方法,其特征在于,所述自适应分布式存储系统包括存储代理服务器、分片集群和配置信息存储模块;所述数据分片方法包括以下步骤:(1)将拟上传到分布式存储系统的数据发送到存储代理服务器;并通过存储代理服务器从配置信息存储模块查询存储节点的配置信息,获取当前所有分片的IP地址、存储容量、最大阈值、已存储数据大小以及是否可写入;(2)通过存储代理服务器找出所有可写入的分片;并根据可写入的分片的已存储数据量、存储容量和阈值,建立可写入分片列表;(3)采用随机算法从可写入分片列表中选取待写入的分片;(4)通过存储代理服务器根据将拟上传数据写入待写入的分片;(5)当数据写入动作完成,通过所述分片将存储数据对应的ID、所占用存储空间大小反馈给存储代理服务器;(6)通过存储代理服务器根据所占用存储空间大小更新配置信息存储模块中存储的配置信息;所述配...

【专利技术属性】
技术研发人员:余晓阳路松峰王同洋黄炎刘儒君廖卫国
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1