CN102917073A - 一种均衡且易于扩展的无中心云存储方法 - Google Patents
一种均衡且易于扩展的无中心云存储方法 Download PDFInfo
- Publication number
- CN102917073A CN102917073A CN2012104295737A CN201210429573A CN102917073A CN 102917073 A CN102917073 A CN 102917073A CN 2012104295737 A CN2012104295737 A CN 2012104295737A CN 201210429573 A CN201210429573 A CN 201210429573A CN 102917073 A CN102917073 A CN 102917073A
- Authority
- CN
- China
- Prior art keywords
- node
- cloud storage
- expand
- easy
- space
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种均衡且易于扩展的无中心云存储方法,该方法首先对基于节点容量的ID空间进行分区;其次采用路由算法对基于ID空间的分区方法,每个节点Ni都负责相应的分区(Di-1,Di],即任何ID>Di-1,并且ID<=Di,都由节点Ni负责存储,且路由查找只有一跳;然后采用冗余复制法实现对数据冗余的复制,并且定义冗余度为R;再通过节点扩展法对当云存储网络的存储容量达到一定阈值时,需要逐步加入新的节点以扩展容量与计算能力,实现对节点的加入;最后通过重新平衡法对暂时打破原有平衡的新加入的节点进行平衡处理,以达到数据平衡。本发明解决了现有技术存在的存储不均衡的技术问题。具有良好的均衡性等优点。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种均衡且易于扩展的无中心云存储方法。
背景技术
自从2006年谷歌首次提出云计算概念以来,云计算在各方IT巨头的推动下快速发展。而云存储作为云计算的基础,重要性犹如建筑基石。在数据快速膨胀的云存储环境下,如何解决存储系统在扩展过程中同时兼顾“简单、高效、均衡”成为研究的热点。云存储系统分为“中心式”与“无中心式”两种,谷歌文件系统(GFS)为典型的“中心式”云存储系统,有专门的元数据节点和控制节点,需要对这些中心节点进行额外集群以保证其可靠性和可用性。无中心云存储系统,不需要中心节点,所有存储节点都是对等的,任何节点都可提供服务,典型的有亚马逊的DYNAMO。传统的无中心存储系统,不管是结构化的还是非结构化的,都具有存储不均衡的问题。这是因为大部分基于一致性哈希算法的存储系统,节点的编号(ID)是随机生成的,当有限的存储节点承载了大量数据后,随机ID的分布的不均衡性,导致存储的不均衡,某些节点负荷过大,而某些节点负荷过轻。另外,存储系统是逐步扩展的,后加入的存储节点,其容量及处理能力可能不同于之前的节点,因此节点本身容量与处理能力的差异也导致了存储网络的不均衡。理想的网络模型应该是“能者多劳”,即节点应该按其本身处理能力承担相应的负载。
发明内容
本发明目的在于提供一种均衡且易于扩展的无中心云存储方法,以克服现有技术存在的存储不均衡的技术问题。
具体步骤如下:
一种均衡且易于扩展的无中心云存储方法,其特征在于:所述方法包括以下步骤:
1)对基于节点容量的ID空间进行分区;
2)采用路由算法对基于ID空间的分区方法,每个节点Ni都负责相应的分区(Di-1,Di],即任何ID>Di-1,并且ID<=Di,都由节点Ni负责存储,且路由查找只有一跳;
3)采用冗余复制法实现对数据冗余的复制,并且定义冗余度为R;
4)通过节点扩展法对当云存储网络的存储容量达到一定阈值时,需要逐步加入新的节点以扩展容量与计算能力,实现对节点的加入;
5)通过重新平衡法对暂时打破原有平衡的新加入的节点进行平衡处理,以达到数据平衡。
优选地,上述步骤1中ID空间是由所有可能的ID所构成的一个范围,采用SHA-1算法得出的摘要ID是一个160比特位的大数,它构成了一个从0到2160-1的空间。
优选地,上述空间分区是将ID空间进行分割。
优选地,上述步骤2中的路由算法包括以下步骤:
1)每个节点都根据ID空间分区原则生成路由表,路由表记录着节点编号与其所负责范围的关系;
2)任何节点Ni接受数据存取请求;
3)节点Ni根据要存取的ID,查找路由表,得到所负责存取的节点编号;
4)转发存取请求到相应节点;
5)节点Ni等待返回的操作结果。
优选地,上述步骤3中的冗余复制法包括以下步骤:
1)接受数据写入请求的节点Ni,根据路由表,算出所负责存储的节点编号为n;
2)通过向相邻的节点写入数据副本为原则,算出冗余组成员;
3)得到冗余组成员(n,n+1,n+2,...,n+R-1),如果R=3,则冗余组成员为(n,n+1,n+2);如果节点编号超出总节点数,则采用模运算方法去整;即:节点编号=节点编号MOD总节点数;
4)按照路由算法,同时发送并发写入请求给冗余组成员;
5)节点Ni等待冗余组成员的操作结果。
优选地,上述节点扩展法包括以下步骤:
1)管理员选定要加入网络的节点,并为其编号(按从0开始编号原则)。假定已有节点数量k,则为新加入的节点编号为k,记为Nk,总网络节点数量达到k+1;
2)管理员通知所有正在运行中的节点,有新的节点Nk要加入;
3)所有已运行的节点,根据所加入的节点Nk的容量Ck,对ID空间进行重新分区,并更新本地的路由表;
4)节点加入完成。
优选地,上述重新平衡法包括以下步骤:
1)所有节点开始扫描本地已存储的数据;
2)读取下一个数据块;
3)对于每个数据块ID,根据路由方法计算其冗余组(n,n+1,...,n+R-1),其中R为冗余度;
4)如果当前节点属于此冗余组,则返回步骤2;
5)如果当前节点不属于此冗余组,则按下列公司计算出其目的地=n+(本节点编号MOD R);
6)把当前数据块移动到目地的;
7)如果还有数据块,返回步骤2。
实施本发明具有以下优点
1、该发明提出了一种适用于无中心分布式云存储系统,基于节点空间的ID分区方法,可以混合使用不同容量的节点,使得每个节点按相应的容量参与存储,具有良好的均衡性。
2、本发明还提出了完整节点扩展方法,在系统具有冗余度的情况下也能轻松扩展。
3、节点重新平衡方法采用基于节点位置差异信息,快速并发的把相应数据副本直接移动到不同的目的地,在节点重新平衡的时候也最小化了数据量的移动。
4、无中心,存储系统不需要特定的控制节点,每个结点都可以服务;
5、结构化,对数据块查找,通过ID即可以在一步内快速定位;
6、高可靠性,数据块在独立节点上冗余复制,避免单点故障带来数据损坏;
7、均衡性,基于节点容量的良好的负载均衡算法;
8、易扩展性:轻松加入节点以扩展容量,并能快速重新平衡。
附图说明
图1为本发明中基于节点容量的ID空间分区图;
图2为本发明中节点编号与其所负责范围的关系图;
图3为本发明中数据冗余复制中的关系图;
图4为本发明中重新平衡法中的关系图。
具体实施方式
为了达到上述目的,本发明提供的一种均衡且易于扩展的无中心云存储方法包括以下步骤:
首先对基于节点容量的ID空间进行分区;其次采用路由算法对基于ID空间的分区方法,每个节点Ni都负责相应的分区(Di-1,Di],即任何ID>Di-1,并且ID<=Di,都由节点Ni负责存储,且路由查找只有一跳;然后采用冗余复制法实现对数据冗余的复制,并且定义冗余度为R;再通过节点扩展法对当云存储网络的存储容量达到一定阈值时,需要逐步加入新的节点以扩展容量与计算能力,实现对节点的加入;最后通过重新平衡法对暂时打破原有平衡的新加入的节点进行平衡处理,以达到数据平衡。
在基于节点容量的ID空间分区中,ID空间是指由所有可能的ID所构成的一个范围,采用SHA-1算法得出的摘要ID是一个160比特位的大数,它构成了一个从0到2160-1的空间。SHA-1算法具有良好的均衡性,即使截取ID的前16位也同样具有良好的均衡性。本发明只采用了ID的前16位用于路由计算,16位的数字表示了0到65535的一个空间,最大的节点ID65535记为M,本存储系统节点数最多可以达到M+1=65536台。空间分区是指按一定的方法,把空间进行分割。例如现在我们有N台存储节点,空间被平均的分成了N等份,每个节点存储总空间的1/N份数据。如果把节点进行编号,从0开始到N-1,那么对于任何一个小于N的ID,都可以一一对应的找到存储节点,即ID为i的数据存储于节点编号同样为i的节点上。由于云存储系统是按需逐步扩展的,一开始不可能有众多的节点与数据ID一一对应,加上参与存储的节点容量有可能大小不一,采用均分空间的方法会导致负载的不均衡。因此,我们引入了基于节点容量的ID空间分区,具体参见图1所示,假定我们现在有k台存储节点,Ni表示编号为i的节点,i的范围为从0到k-1;Ci表示Ni节点的容量;Pi表示节点Ni占全存储网络容量的比例,计算公式Pi=Ci/(C0+C1+C2+...Ci+...Ck-1);这样,ID空间就被按比例分成了k个部分,把节点按顺序排列于ID空间上,每个节点就位于一个单独的边界。Di表示节点Ni位于ID空间上的距离,则有M=65535;D0=P0*M;Di=Di-1+Pi*M;Dk-1=M;ID空间被分隔成(0,D0],(D0,D1],(D1,D2],...(Dk-2,Dk-1]总共k个分区。
其中路由算法是基于以上ID空间的分区方法,每个节点Ni都负责相应的分区(Di-1,Di],即任何ID>Di-1,并且ID<=Di,都由节点Ni负责存储。路由查找只有一跳。具体步骤如下:
步骤1,每个节点都根据ID空间分区原则生成路由表,路由表记录着节点编号与其所负责范围的关系,参见图2所示。
步骤2,任何节点Ni接受数据存取请求;
步骤3,节点Ni根据要存取的ID,查找路由表,得到所负责存取的节点编号;
步骤4,转发存取请求到相应节点;
步骤5,节点Ni等待返回的操作结果。
其中冗余复制中,定义冗余度为R(通常R=3),数据冗余复制的包括以下步骤:具参见图3所示,
步骤1,接受数据写入请求的节点Ni,根据路由表,算出所负责存储的节点编号为n;
步骤2,通过向相邻的节点写入数据副本为原则,算出冗余组成员
步骤3,得到冗余组成员(n,n+1,n+2,...,n+R-1),如何R=3,则冗余组成员为(n,n+1,n+2)。如果节点编号超出总节点数,则采用模运算方法去整。即:节点编号=节点编号MOD总节点数;
步骤4,按照路由算法,同时发送并发写入请求给冗余组成员;
步骤5,节点Ni等待冗余组成员的操作结果。
其中节点扩展法中,当云存储网络的存储容量达到一定阈值时,需要逐步加入新的节点以扩展容量与计算能力,节点的扩展步骤包括以为:首先通过管理员选定要加入网络的节点,并为其编号(按从0开始编号原则)。假定已有节点数量k,则为新加入的节点编号为k,记为Nk,总网络节点数量达到k+1;其次管理员通知所有正在运行中的节点,有新的节点Nk要加入;然后对所有已运行的节点,根据所加入的节点Nk的容量Ck,对ID空间进行重新分区,并更新本地的路由表;最后节点加入完成。
参见图4所示,在重新平衡法中,当有新节点加入存储网络时,新加入的节点暂时打破了原有的平衡。新的节点Nk加入时,它的容量为Ck,整个网络需要把比例为Pk的数据移动到新节点Nk上。Pk的计算公式为:Pk=Ck/(C0+C1+C2+...+Ck)。
该重新平衡法包括以下步骤:
步骤1,所有节点开始扫描本地已存储的数据;
步骤2,读取下一个数据块;
步骤3,对于每个数据块ID,根据路由方法计算其冗余组(n,n+1,...,n+R-1),其中R为冗余度;
步骤4,如果当前节点属于此冗余组,则返回步骤2;
步骤5,如果当前节点不属于此冗余组,则按下列公式计算出其目的地,
公式为:目的地=n+(本节点编号MOD R);
步骤6,把当前数据块移动到目地的;
步骤7,如果还有数据块,返回步骤2。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种均衡且易于扩展的无中心云存储方法,其特征在于:所述方法包括以下步骤:
1)对基于节点容量的ID空间进行分区;
2)采用路由算法对基于I D空间的分区方法,每个节点Ni都负责相应的分区(Di-1,Di],即任何ID>Di-1,并且ID<=Di,都由节点Ni负责存储,且路由查找只有一跳;
3)采用冗余复制法实现对数据冗余的复制,并且定义冗余度为R;
4)通过节点扩展法对当云存储网络的存储容量达到一定阈值时,需要逐步加入新的节点以扩展容量与计算能力,实现对节点的加入;
5)通过重新平衡法对暂时打破原有平衡的新加入的节点进行平衡处理,以达到数据平衡。
2.根据权利要求1所述的均衡且易于扩展的无中心云存储方法,其特征在于:所述步骤1中ID空间是由所有可能的ID所构成的一个范围,采用SHA-1算法得出的摘要ID是一个160比特位的大数,它构成了一个从0到2160-1的空间。
3.根据权利要求2所述的均衡且易于扩展的无中心云存储方法,其特征在于:所述空间分区是将ID空间进行分割。
4.根据权利要求3所述的均衡且易于扩展的无中心云存储方法,其特征在于:所述步骤2中的路由算法包括以下步骤:
1)每个节点都根据ID空间分区原则生成路由表,路由表记录着节点编号与其所负责范围的关系;
2)任何节点Ni接受数据存取请求;
3)节点Ni根据要存取的ID,查找路由表,得到所负责存取的节点编号;
4)转发存取请求到相应节点;
5)节点Ni等待返回的操作结果。
5.根据权利要求4所述的均衡且易于扩展的无中心云存储方法,其特征在于:所述步骤3中的冗余复制法包括以下步骤:
1)接受数据写入请求的节点Ni,根据路由表,算出所负责存储的节点编号为n;
2)通过向相邻的节点写入数据副本为原则,算出冗余组成员;
3)得到冗余组成员(n,n+1,n+2,...,n+R-1),如果R=3,则冗余组成员为(n,n+1,n+2);如果节点编号超出总节点数,则采用模运算方法去整;即:节点编号=节点编号MOD总节点数;
4)按照路由算法,同时发送并发写入请求给冗余组成员;
5)节点Ni等待冗余组成员的操作结果。
6.根据权利要求5所述的均衡且易于扩展的无中心云存储方法,其特征在于:所述节点扩展法包括以下步骤:
1)管理员选定要加入网络的节点,并为其编号(按从0开始编号原则)。假定已有节点数量k,则为新加入的节点编号为k,记为Nk,总网络节点数量达到k+1;
2)管理员通知所有正在运行中的节点,有新的节点Nk要加入;
3)所有已运行的节点,根据所加入的节点Nk的容量Ck,对ID空间进行重新分区,并更新本地的路由表;
4)节点加入完成。
7.根据权利要求6所述的均衡且易于扩展的无中心云存储方法,其特征在于:所述重新平衡法包括以下步骤:
1)所有节点开始扫描本地已存储的数据;
2)读取下一个数据块;
3)对于每个数据块ID,根据路由方法计算其冗余组(n,n+1,...,n+R-1),其中R为冗余度;
4)如果当前节点属于此冗余组,则返回步骤2;
5)如果当前节点不属于此冗余组,则按下列公司计算出其目的地=n+(本节点编号MOD R);
6)把当前数据块移动到目地的;
7)如果还有数据块,返回步骤2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104295737A CN102917073A (zh) | 2012-10-31 | 2012-10-31 | 一种均衡且易于扩展的无中心云存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104295737A CN102917073A (zh) | 2012-10-31 | 2012-10-31 | 一种均衡且易于扩展的无中心云存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102917073A true CN102917073A (zh) | 2013-02-06 |
Family
ID=47615303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104295737A Pending CN102917073A (zh) | 2012-10-31 | 2012-10-31 | 一种均衡且易于扩展的无中心云存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102917073A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546572A (zh) * | 2013-10-30 | 2014-01-29 | 北京荣之联科技股份有限公司 | 一种云存储装置以及多云存储联网系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771715A (zh) * | 2008-12-26 | 2010-07-07 | 华为技术有限公司 | 分布式网络构建存储的方法、装置和系统 |
CN102035861A (zh) * | 2009-09-24 | 2011-04-27 | 中兴通讯股份有限公司 | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 |
CN102457571A (zh) * | 2011-09-15 | 2012-05-16 | 中标软件有限公司 | 一种云存储中数据均衡分布方法 |
-
2012
- 2012-10-31 CN CN2012104295737A patent/CN102917073A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771715A (zh) * | 2008-12-26 | 2010-07-07 | 华为技术有限公司 | 分布式网络构建存储的方法、装置和系统 |
CN102035861A (zh) * | 2009-09-24 | 2011-04-27 | 中兴通讯股份有限公司 | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 |
CN102457571A (zh) * | 2011-09-15 | 2012-05-16 | 中标软件有限公司 | 一种云存储中数据均衡分布方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546572A (zh) * | 2013-10-30 | 2014-01-29 | 北京荣之联科技股份有限公司 | 一种云存储装置以及多云存储联网系统和方法 |
CN103546572B (zh) * | 2013-10-30 | 2017-04-05 | 北京荣之联科技股份有限公司 | 一种多云存储联网系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9665284B2 (en) | Partition extension method and apparatus | |
US7788400B2 (en) | Utilizing proximity information in an overlay network | |
US7483391B2 (en) | Providing a notification including location information for nodes in an overlay network | |
CN110489059B (zh) | 数据集群存储的方法、装置及计算机设备 | |
CN106990915B (zh) | 一种基于存储介质类型和加权配额的存储资源管理方法 | |
US20120166394A1 (en) | Distributed storage system and method for storing objects based on locations | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
WO2020010502A1 (zh) | 一种基于一致性哈希算法的分布式数据冗余存储方法 | |
US10541858B2 (en) | Thin client system, management server, workplace environment setting method and workplace environment setting program | |
CN102457571A (zh) | 一种云存储中数据均衡分布方法 | |
US9733835B2 (en) | Data storage method and storage server | |
CN104077423A (zh) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 | |
EP2875653A1 (en) | Method for generating a dataset structure for location-based services and method and system for providing location-based services to a mobile device | |
CN103916327B (zh) | 一种hp2p网络负载平衡的方法 | |
CN108282522A (zh) | 基于动态路由的数据存储访问方法及系统 | |
CN101399765B (zh) | 降低对等网络中热点节点负荷的方法和系统 | |
Mseddi et al. | On optimizing replica migration in distributed cloud storage systems | |
CN104932986A (zh) | 一种数据重分布方法及装置 | |
CN108153759B (zh) | 一种分布式数据库的数据传输方法、中间层服务器及系统 | |
CN106383826A (zh) | 数据库查询方法和装置 | |
CN107656980B (zh) | 应用于分布式数据库系统中的方法及分布式数据库系统 | |
CN104283966A (zh) | 云存储系统的数据分布算法及其装置 | |
CN102917073A (zh) | 一种均衡且易于扩展的无中心云存储方法 | |
Shvetsov | Algorithms for distributing traffic flows | |
JP2015513333A (ja) | マイグレーションによるデータベースの作業負荷バランシング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20160622 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |