CN107154957A - 基于虚拟环负载均衡算法的分布式存储控制方法 - Google Patents
基于虚拟环负载均衡算法的分布式存储控制方法 Download PDFInfo
- Publication number
- CN107154957A CN107154957A CN201611244718.0A CN201611244718A CN107154957A CN 107154957 A CN107154957 A CN 107154957A CN 201611244718 A CN201611244718 A CN 201611244718A CN 107154957 A CN107154957 A CN 107154957A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- virtual ring
- control method
- server
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于虚拟环负载均衡算法的分布式存储控制方法,本发明通过引用一致性哈希算法,可以减少由于增加结点导致数据项的数量来提高单调性,通过引入虚拟环和历史模数表,可以避免由于存储节点数变化导致数据移动的问题。通过本发明的方法,消除了存储介质规模对数据映射的影响,在保证负载均衡的基础上,实现了云存储容量的良好的冗余特性和高扩展性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于虚拟环负载均衡算法的分布式存储控制方法。
背景技术
随着分布式云存储技术的发展和应用,业界逐渐接受在云存储系统中采用分片存储、分布式负载均衡为主要的技术实现手段,将大容量文件切分为多个对象(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函数处理的数据会在整个环形缓冲区里进行第一次排序。
进一步,所述步骤三中,map函数的输出结果根据key值进行Hash映射,将数据量庞大的map输出分割为N份来实现数据的并行处理,N为reduce数目
本发明的有益效果是:
本发明通过引用一致性哈希算法,可以减少由于增加结点导致数据项的数量来提高单调性,通过引入虚拟环和历史模数表,可以避免由于存储节点数变化导致数据移动的问题。通过本发明的方法,消除了存储介质规模对数据映射的影响,在保证负载均衡的基础上,实现了云存储容量的良好的冗余特性和高扩展性。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和权利要求书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为本发明的方法流程示意图;
图2为本发明的虚拟环结构示意图;
图3为本发明所述系统的结构示意图。
具体实施方式
以下将参照附图,对本发明的优选实施例进行详细的描述。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
如图1所示,本发明的方法包括以下步骤:
步骤一:用户通过客户端远程上传保存大容量数据;
步骤二:对数据作切分处理;
步骤三:对每个数据切分块做hash算法计算key值;
步骤四:客户端将切分数据块的Key值、数据唯一标识信息和时间戳信息等进行处理封装,提交到服务器,服务器回传每个数据分块对应的节点IP地址给客户端,随后开始并发数据上传;
步骤五:虚拟环节点根据数据的时间戳和历史模数获取相应的映射存储节点,将接收到的数据保存到物理介质中,具体是依据存储时间戳,判断有无历史存储;如果有,则进入步骤六,如果没有,根据当前存储节点模数映射到相应存储节点,保存数据,得到物理存储节点;
步骤六:根据存储节点历史模数记录,取模运算,映射到历史存储节点,得到物理存储节点;
用户需要远程下载数据时,通过远程客户端提交数据读取请求,给出数据的唯一标识信息和时间戳,从服务器获取所有相关Key值和映射到的虚拟环节点IP,访问节点下载数据。
其中,在步骤二中,原始数据经过切分后进入map函数处理,经过map函数处理的数据会在整个环形缓冲区里进行第一次排序。
步骤三中,map函数的输出结果根据key值进行Hash映射,将数据量庞大的map输出分割为N份来实现数据的并行处理,N为reduce数目。
有鉴于哈希算法在改变node数时会带来巨大的数据迁移。为了解决这个问题,本方法引入“虚拟环”的概念,并采用基于“虚拟环”映射空间的分布式存储映射计算方法,主要目的是在改变集群的node数量时(增加/删除服务器),能够尽可能少地改变已存在key和node的映射关系,以满足单调性。在该方法中,引入“虚拟环”映射空间概念,通过计算虚结点,能够减少移动为特点来实现集群容量的自适应性。具体步骤如下:
1、引入“虚拟环”映射空间
“虚拟环”上的节点数量在环形空间保持恒定不变,而每个节点对应了若干个“物理”存储节点,“虚拟环”节点在哈希空间中以哈希值排列。如图2所示,引入了“虚拟环”后,映射关系就从【object--->node】转换成了【object--->virtual node--->cache node】。
2、虚拟环节点到存储节点的映射
由于虚拟环节点个数在集群的整个生命周期中是恒定不变的,它与数据项的映射关系不会发生变化,改变的仅是虚拟环node与存储node的映射关系,所以需对以上代码进行优化。在虚拟环节点上建立“存储节点历史模数表”,表中的数据项记录虚拟环节点在某个历史时间点所映射到的存储节点的模数。
如1000个虚结点对应着100个存储结点,存储结点变动时,虚结点就需要重新分配到结点。当100个结点扩展到101个结点时,此时至少有一个结点分配不到虚结点,那么就需要再在历史模数表中增加一项新的存储节点数记录,而虚结点是与数据项对应的哈希关系,如果改变了虚节点数,那么就需要重新分配所有的数据项,这将导致移动大量的数据。
3、预设合理的存储节点数
所以在设置虚结点数的时候,需要对系统预期的规模做充分考虑,假如集群的规模不会超过6000个结点,那么可以将虚结点数设置为结点数的100倍。这样,变动任意一个结点的负载仅影响1%的数据项。此时有6百万个vnode数,使用2bytes来存储结点数(0~65535)。基本的内存占用是6*106*2bytes=12Mb,对于服务器来说完全可以承受。
4、存储节点映射的取模运算
由于在虚拟环的节点上记录了历史模数表,存取数据时访问端数据应携带时间戳,根据时间在虚拟环节点上通过获取历史模数表来进行取模运算,从而获取数据的具体存储节点。
如图3所示,根据本发明的方法思路,本发明的系统包括云存储客户端和云存储服务器端,云存储客户端包括若干终端和Hash算法模块,云存储服务器端包括云存储服务器、虚拟环控制模块、存储节点映射模块、Hash算法模块、HTTP数据传输接口模块、物理介质读写模块和数据库访问接口模块。各组成部分有机结合,用于实现如前述的方法各步骤。本发明的方法和系统引用一致性哈希算法是为了减少由于增加结点导致数据项的数量来提高单调性,引入虚拟环和历史模数表的目的是为了避免由于存储节点数变化导致数据移动的问题。通过本发明的方法从理论上消除了存储介质规模对数据映射的影响,在保证负载均衡的基础上,实现了云存储容量的良好的冗余特性和高扩展性。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.基于虚拟环负载均衡算法的分布式存储控制方法,其特征在于:所述方法包括以下步骤:
步骤一:用户通过客户端远程上传保存大容量数据;
步骤二:对数据作切分处理;
步骤三:对每个数据切分块做hash算法计算key值;
步骤四:客户端将切分数据块的Key值、数据唯一标识信息和时间戳信息等进行处理封装,提交到服务器,服务器回传每个数据分块对应的节点IP地址给客户端,随后开始并发数据上传;
步骤五:虚拟环节点根据数据的时间戳和历史模数获取相应的映射存储节点,将接收到的数据保存到物理介质中,具体是依据存储时间戳,判断有无历史存储;如果有,则进入步骤六,如果没有,根据当前存储节点模数映射到相应存储节点,保存数据,得到物理存储节点;
步骤六:根据存储节点历史模数记录,取模运算,映射到历史存储节点,得到物理存储节点;
用户需要远程下载数据时,通过远程客户端提交数据读取请求,给出数据的唯一标识信息和时间戳,从服务器获取所有相关Key值和映射到的虚拟环节点IP,访问节点下载数据;
所述虚拟环上的节点数量在环形空间保持恒定不变,而每个节点对应了若干个物理存储节点,虚拟环节点在哈希空间中以哈希值排列。
2.根据权利要求1所述的基于虚拟环负载均衡算法的分布式存储控制方法,其特征在于:所述步骤二中,是原始数据经过切分后进入map函数处理,经过map函数处理的数据会在整个环形缓冲区里进行第一次排序。
3.根据权利要求1或2所述的基于虚拟环负载均衡算法的分布式存储控制方法,其特征在于:所述步骤三中,map函数的输出结果根据key值进行Hash映射,将数据量庞大的map输出分割为N份来实现数据的并行处理,N为reduce数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611244718.0A CN107154957A (zh) | 2016-12-29 | 2016-12-29 | 基于虚拟环负载均衡算法的分布式存储控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611244718.0A CN107154957A (zh) | 2016-12-29 | 2016-12-29 | 基于虚拟环负载均衡算法的分布式存储控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107154957A true CN107154957A (zh) | 2017-09-12 |
Family
ID=59791476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611244718.0A Pending CN107154957A (zh) | 2016-12-29 | 2016-12-29 | 基于虚拟环负载均衡算法的分布式存储控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107154957A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108551474A (zh) * | 2018-03-26 | 2018-09-18 | 南京邮电大学 | 一种服务器集群的负载均衡方法 |
WO2019057081A1 (zh) * | 2017-09-21 | 2019-03-28 | 杭州海康威视系统技术有限公司 | 数据存储方法、数据查询方法、计算机设备及存储介质 |
CN110086840A (zh) * | 2018-01-26 | 2019-08-02 | 浙江宇视科技有限公司 | 图像数据存储方法、装置及计算机可读存储介质 |
WO2020019749A1 (zh) * | 2018-07-24 | 2020-01-30 | 华为技术有限公司 | 一种数据分片方法、相关设备及计算机存储介质 |
CN111338571A (zh) * | 2020-02-18 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、设备及存储介质 |
CN112015552A (zh) * | 2020-08-27 | 2020-12-01 | 平安科技(深圳)有限公司 | hash环均衡负载方法、装置、电子设备和存储介质 |
CN112306688A (zh) * | 2020-10-30 | 2021-02-02 | 天地伟业技术有限公司 | 一种创新的适用于云存储的哈希一致算法 |
CN113923218A (zh) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | 编解码插件分布式部署方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755592A (zh) * | 2004-09-28 | 2006-04-05 | 鸿富锦精密工业(深圳)有限公司 | 一种信息处理设备及方法 |
CN101005514A (zh) * | 2006-12-27 | 2007-07-25 | 北京航空航天大学 | 用于网络游戏的多服务器组织方法 |
US20110058560A1 (en) * | 2009-09-09 | 2011-03-10 | Hitachi, Ltd. | Virtual network management server and network system |
CN102404372A (zh) * | 2010-09-16 | 2012-04-04 | 中国移动通信集团江苏有限公司 | Web缓存中内容分布式存储的方法、系统及节点设备 |
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
CN105306525A (zh) * | 2015-09-11 | 2016-02-03 | 浪潮集团有限公司 | 一种数据布局的方法、装置和系统 |
CN105553722A (zh) * | 2015-12-16 | 2016-05-04 | 深圳市迪菲特科技股份有限公司 | 一种基于时间戳的数据交换方法、装置及系统 |
-
2016
- 2016-12-29 CN CN201611244718.0A patent/CN107154957A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755592A (zh) * | 2004-09-28 | 2006-04-05 | 鸿富锦精密工业(深圳)有限公司 | 一种信息处理设备及方法 |
CN101005514A (zh) * | 2006-12-27 | 2007-07-25 | 北京航空航天大学 | 用于网络游戏的多服务器组织方法 |
US20110058560A1 (en) * | 2009-09-09 | 2011-03-10 | Hitachi, Ltd. | Virtual network management server and network system |
CN102404372A (zh) * | 2010-09-16 | 2012-04-04 | 中国移动通信集团江苏有限公司 | Web缓存中内容分布式存储的方法、系统及节点设备 |
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
CN105306525A (zh) * | 2015-09-11 | 2016-02-03 | 浪潮集团有限公司 | 一种数据布局的方法、装置和系统 |
CN105553722A (zh) * | 2015-12-16 | 2016-05-04 | 深圳市迪菲特科技股份有限公司 | 一种基于时间戳的数据交换方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
魏祥麟等: "《一种综合的结构化P2P系统负载均衡机制》", 《北京邮电大学学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019057081A1 (zh) * | 2017-09-21 | 2019-03-28 | 杭州海康威视系统技术有限公司 | 数据存储方法、数据查询方法、计算机设备及存储介质 |
CN110086840A (zh) * | 2018-01-26 | 2019-08-02 | 浙江宇视科技有限公司 | 图像数据存储方法、装置及计算机可读存储介质 |
CN108551474A (zh) * | 2018-03-26 | 2018-09-18 | 南京邮电大学 | 一种服务器集群的负载均衡方法 |
CN108551474B (zh) * | 2018-03-26 | 2021-03-09 | 南京邮电大学 | 一种服务器集群的负载均衡方法 |
WO2020019749A1 (zh) * | 2018-07-24 | 2020-01-30 | 华为技术有限公司 | 一种数据分片方法、相关设备及计算机存储介质 |
CN110851525A (zh) * | 2018-07-24 | 2020-02-28 | 华为技术有限公司 | 一种数据分片方法、相关设备及计算机存储介质 |
CN111338571A (zh) * | 2020-02-18 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111338571B (zh) * | 2020-02-18 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、设备及存储介质 |
CN112015552A (zh) * | 2020-08-27 | 2020-12-01 | 平安科技(深圳)有限公司 | hash环均衡负载方法、装置、电子设备和存储介质 |
CN112306688A (zh) * | 2020-10-30 | 2021-02-02 | 天地伟业技术有限公司 | 一种创新的适用于云存储的哈希一致算法 |
CN113923218A (zh) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | 编解码插件分布式部署方法、装置、设备及介质 |
CN113923218B (zh) * | 2021-10-09 | 2023-07-21 | 天翼物联科技有限公司 | 编解码插件分布式部署方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107154957A (zh) | 基于虚拟环负载均衡算法的分布式存储控制方法 | |
KR102266756B1 (ko) | Kvs 트리 | |
CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
CN102968503B (zh) | 数据库系统的数据处理方法以及数据库系统 | |
CN106600708B (zh) | 一种游戏地图的处理方法及系统 | |
CN106776967A (zh) | 基于时序聚合算法的海量小文件实时存储方法及装置 | |
CN111723073B (zh) | 数据存储处理方法、装置、处理系统以及存储介质 | |
CN103905540A (zh) | 基于两级哈希的对象存储数据分布机制 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN104486777B (zh) | 一种实现数据处理的方法及装置 | |
CN103942161B (zh) | 只读缓存的去冗余系统及方法以及缓存的去冗余方法 | |
CN104750740A (zh) | 数据更新的方法及装置 | |
US10592153B1 (en) | Redistributing a data set amongst partitions according to a secondary hashing scheme | |
CN108089816A (zh) | 一种基于负载均衡的查询式重复数据删除方法及装置 | |
CN107239485A (zh) | 数据库操作方法、装置及系统 | |
CN112988761B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN104281535B (zh) | 一种映射表在内存中的处理方法和装置 | |
CN112988908B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN104407879A (zh) | 一种电网时序大数据并行加载方法 | |
CN108268476A (zh) | 数据查询方法及装置 | |
CN109800236A (zh) | 支持多节点的分布式缓存方法及设备 | |
CN112988912A (zh) | 区块链数据存储方法及装置、电子设备 | |
CN106201839A (zh) | 一种业务对象的信息加载方法和装置 | |
CN107145449A (zh) | 存储设备和存储方法 | |
CN101783814A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170912 |
|
RJ01 | Rejection of invention patent application after publication |