[发明专利]基于虚拟环负载均衡算法的分布式存储控制方法在审
申请号: | 201611244718.0 | 申请日: | 2016-12-29 |
公开(公告)号: | CN107154957A | 公开(公告)日: | 2017-09-12 |
发明(设计)人: | 李亚林;方曦;詹乐贵;陈潇瑞;龙章勇;陈晖 | 申请(专利权)人: | 贵州电网有限责任公司铜仁供电局 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京同恒源知识产权代理有限公司11275 | 代理人: | 王海权 |
地址: | 554300 *** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟 负载 均衡 算法 分布式 存储 控制 方法 | ||
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于虚拟环负载均衡算法的分布式存储控制方法。
背景技术
随着分布式云存储技术的发展和应用,业界逐渐接受在云存储系统中采用分片存储、分布式负载均衡为主要的技术实现手段,将大容量文件切分为多个对象(object),分别存储到不同的物理介质中。
在分布式对象存储中的一个关键问题是数据该如何存放。环状映射空间是其中最重要的概念,它用于记录存储对象与物理位置间映射关系。
映射环用来确定数据驻留在集群中的位置。映射环空间中每个节点的位置由逻辑“环”来维护,并存储在映射中。环空间使用映射的概念来保证数据的隔离。每个节点都确保对应不同的映射,一个映射可以是一个硬盘,一个服务器,一个机架,一个交换机,甚至是一个数据中心。
如一个普通Hash算法与场景分析的例子,假设有N台存储服务器(以下简称node),打算用于图片文件存储,为了使服务器的负载均衡,需要把对象均匀地映射到每台服务器上,通常会使用哈希算法来实现,计算步骤如下:
1.计算object的hash值Key
2.计算Key mod N值
有N个存储节点,将Key模N得到的余数就是该Key对应的值需要存放的节点。比如,N是2,那么值为0、1、2、3、4的Key需要分别存放在0、1、0、1和0号节点上。如果哈希算法是均匀的,数据就会被平均分配到两个节点中。如果每个数据的访问量比较平均,负载也会被平均分配到两个节点上。
但是,当数据量和访问量进一步增加,两个节点无法满足需求的时候,需要增加一个节点来服务客户端的请求。这时,N变成了3,映射关系变成了Key mod(N+1),因此,上述哈希值为2、3、4的数据需要重新分配(2->server 2,3->server 0,4->server1)。如果数据量很大的话,那么数据量的迁移工作将会非常大。当N已经很大,从N加入一个节点变成N+1个节点的过程,会导致整个哈希环的重新分配,这个过程几乎是无法容忍的,几乎全部的数据都要重新移动一遍。
举例说明,假设有100个node的集群,将107项数据使用md5hash算法分配到每个node中。通过计算我们发现,为了提高集群1%的存储能力,需要移动9900989个数据项,也就是99.01%的数据项!显然,这种算法严重地影响了系统的性能和可扩展性。
显然该种低效率、高成本的实现方法不是好的解决方案,有必要设计出一种新的存储控制方法,通过使用普通硬件来构建冗余的、可扩展的分布式对象存储集群,使存储容量可达更高量级,并且实现成本可控。
发明内容
有鉴于此,本发明的目的是提供一种基于虚拟环负载均衡算法的分布式存储控制方法,本方法通过引入“虚拟环”概念,并采用基于“虚拟环”映射空间的分布式存储映射计算方法,从而能够在改变集群的node数量时(增加/删除服务器),能够尽可能少地改变已存在key和node的映射关系,以满足单调性,使存储容量可达更高量级,并且实现成本可控。
本发明的目的是通过以下技术方案实现的:
本发明的方法包括以下步骤:
步骤一:用户通过客户端远程上传保存大容量数据;
步骤二:对数据作切分处理;
步骤三:对每个数据切分块做hash算法计算key值;
步骤四:客户端将切分数据块的Key值、数据唯一标识信息和时间戳信息等进行处理封装,提交到服务器,服务器回传每个数据分块对应的节点IP地址给客户端,随后开始并发数据上传;
步骤五:虚拟环节点根据数据的时间戳和历史模数获取相应的映射存储节点,将接收到的数据保存到物理介质中,具体是依据存储时间戳,判断有无历史存储;如果有,则进入步骤六,如果没有,根据当前存储节点模数映射到相应存储节点,保存数据,得到物理存储节点;
步骤六:根据存储节点历史模数记录,取模运算,映射到历史存储节点,得到物理存储节点;
用户需要远程下载数据时,通过远程客户端提交数据读取请求,给出数据的唯一标识信息和时间戳,从服务器获取所有相关Key值和映射到的虚拟环节点IP,访问节点下载数据。
所述虚拟环上的节点数量在环形空间保持恒定不变,而每个节点对应了若干个物理存储节点,虚拟环节点在哈希空间中以哈希值排列。
进一步,所述步骤二中,原始数据经过切分后进入map函数处理,经过map函数处理的数据会在整个环形缓冲区里进行第一次排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵州电网有限责任公司铜仁供电局,未经贵州电网有限责任公司铜仁供电局许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611244718.0/2.html,转载请声明来源钻瓜专利网。