一种基于哈希环的非迁移分布式存储方法及系统的制作方法

文档序号:7821773阅读:238来源:国知局
一种基于哈希环的非迁移分布式存储方法及系统的制作方法
【专利摘要】本发明公开了一种基于哈希环的非迁移分布式存储方法及存储系统,该方法通过构建一个抽象的哈希环,所述哈希环上均匀分布虚拟节点,所述虚拟节点上可安装配置存储设备成为物理节点;当进行读写请求时,系统管理者先将需要读写的数据块进行哈希运算映射到哈希环上相应位置,然后沿顺时针方向找到最近的物理存储节点,再根据物理节点的索引信息进行数据的读取工作或根据物理节点的写优先权值进行数据的写入工作。此方法使得存储系统扩容时,不需要移动实际存储的数据,只需将环上的索引数据进行迁移,极大提高系统扩容的效率,另外,数据可以写入到存储系统中任何一个空闲的存储节点,因此采用本技术的存储系统灵活性更高,负载均衡的效果更显著。
【专利说明】一种基于哈希环的非迁移分布式存储方法及系统

【技术领域】
[0001]本发明涉及通信领域,具体地说,涉及一种基于哈希环的非迁移分布式存储方法及系统。

【背景技术】
[0002]目前,随着数据量大规模的增长,存储系统必须面临的一个问题是需要不断增加存储设备以应对大量数据的读写请求。现有技术中,当存储系统增加存储设备扩容时,通常需要将基于哈希环的系统做数据迁移,这将导致整个系统数据对象的映射位置都需要重新进行计算,系统将无法对外界访问进行正常响应,将导致系统处于崩溃状态,同时,对于海量存储系统来说,这将花费很长的时间和较高的系统代价。如何保证存储系统在增加物理设备,提升系统处理能力的同时对现有业务影响最小,是一个需要重视的问题。
[0003]本发明提出的基于哈希算法的环状非迁移分布式存储系统,可以解决分步式存储系统在增加新节点时数据迁移效率低、新旧节点的负载能力不同,导致存储系统负载不均衡等问题,起到提高存储系统的可扩展性并提升分步式存储系统的负载均衡效果的作用。


【发明内容】

[0004]为了解决上述技术问题,本发明提供一种基于哈希环的非迁移分布式存储方法及系统,以解决存储系统在增加新节点时需数据迁移而导致的系统扩容效率低,以及新旧节点的负载能力不同导致存储系统负载不均衡等问题,起到提高存储系统的可扩展性并提升分步式存储系统的负载均衡效果的作用。
[0005]本发明的技术方案如下:
[0006]一种基于哈希环的非迁移分布式存储方法,包括如下步骤:
[0007]S1.分布式存储系统的系统管理模块配置一个抽象的基于哈希算法的环状结构——哈希环,所述哈希环上均匀分布虚拟节点,所述虚拟节点上可安装配置存储设备成为物理节点,所述物理节点上的存储设备划分为索引信息存储空间和数据信息存储空间。
[0008]S2.系统管理模块根据存储设备的CPU、内存、宽带等性能参数为每个物理节点配置相应的性能权值;
[0009]S3.系统进行读取请求后,系统管理模块根据物理节点内所述数据信息存储空间的负载情况为每个物理节点分配负载权值;同时系统管理模块根据物理节点的读写请求情况计算物理节点内所述索弓I信息存储空间的压力权值;
[0010]S4.系统管理模块在存储系统运行过程中根据物理节点上报的物理节点内数据信息存储空间的负载权值、索引信息存储空间的压力权值以及物理节点性能权值计算出当前系统中所有物理节点的写优先权值;
[0011]S5.当进行数据读写请求时,系统管理者先将需要读写的数据块进行哈希运算映射到哈希环上相应位置,然后沿顺时针方向找到最近的物理存储节点,再根据所述物理存储节点的索引信息进行数据的读取工作或根据所述物理存储节点的写优先权值进行数据的写入工作。
[0012]进一步地,所述步骤S5的数据读取过程如下:
[0013]S511.当存储系统进行数据读取请求时,将要读取的数据映射到哈希环上的相应位置;
[0014]S512.沿哈希环的顺时针方向定位到下一物理存储节点Dl上,读取此物理存储节点的索引信息,取得数据实际存储的位置;
[0015]S513.若数据存储在所述存储节点Dl上,则进行数据的读取;若数据不存储在所述存储节点Dl上,则根据索引信息定位数据实际存放的存储节点D2,进行数据的读取。
[0016]进一步地,所述步骤S5数据的写入过程如下:
[0017]S521.预设物理节点的写优先权值的写入阀值;
[0018]S522.当存储系统进行数据写入请求时,将数据块进行哈希运算并映射到哈希环上相应位置;
[0019]S523.沿哈希环顺时针方向找到最近的物理存储节点Fl作为接受写请求的节点,根据物理存储节点的写优先权值,若物理存储节点Fl的写优先权值大于或等于预设的写入阀值,则将数据写入物理存储节点F1,并将索引信息写入物理存储节点Fl ;
[0020]S524.若物理存储节点Fl的写优先权值小于预设的写优先权值的写入阀值,则查找写优先权值大于预设优先权值写入阀值的存储节点F2,将数据写入所述存储节点F2,并将索引信息写入所述存储节点Fl ;
[0021]进一步地,所述数据的写入过程还包括,预设索引信息存储空间的可用空间阀值,若物理存储节点Fl索引信息存储空间的可用空间小于预设的可用空间阀值,则提示系统在物理存储节点Fl的逆时针方向相应虚拟节点配置新的存储设备,并将物理存储节点Fl索引信息储存空间内的部分索引信息迁移储存到所述新的存储设备上。
[0022]进一步地,所述步骤SI中虚拟节点为64个或1024个。
[0023]进一步地,所述物理节点负载权值:当存储空间占用率在80 %以下时,物理节点负载状态是较好;空间占用率在80% -89%时物理节点负载状态正常;空间占用率在90% -99%时物理节点负载状态差;当物理节点存储空间占用率达到100%时,物理节点的存储空间不可用。
[0024]进一步地,物理节点的压力权值即物理节点内索引信息存储空间的压力权值,存储系统中每个物理节点的读写请求数需定时上报给系统管理模块,物理节点上读写请求数越多说明节点的压力越大,物理节点越忙,系统管理模块根据物理节点的读写请求情况计算物理节点压力权值。
[0025]一种基于哈希环的非迁移分布式存储系统,包括哈希环、系统管理模块、虚拟节点和物理节点,所述虚拟节点和所述物理节点位于所述哈希环上,所述系统管理模块通过构建哈希环,负责对存储系统进行配置和管理,以及对物理节点进行状态监控。
[0026]进一步地,所述存储系统还包括空间分配模块,空间分配模块为映射到环上的所有物理节点分配相应的哈希空间,数据经过哈希运算后的数值就可以映射到相应的哈希空间中。
[0027]进一步地,所述虚拟节点是指均匀分步在哈希环上的虚拟的点,在没有存储设备映射到虚拟节点上时,虚拟节点是空的,哈希环一旦构建完成,每个虚拟节点在环上的位置是固定的。
[0028]进一步地,所述物理节点是指系统管理者将存储设备映射到哈希环上的一个虚拟节点上后,此虚拟节点成为物理节点,每个物理节点负责一段哈希空间的数据读写请求,并提供数据存储功能。
[0029]进一步地,所述系统管理模块还能增加和删除物理节点。
[0030]本发明的有益效果:在存储系统扩容时,不需要移动实际存储的数据,只需要将占据环上相应范围位置的索引数据进行迁移,这将极大的提高系统扩容的效率,而通常的基于哈希环的系统是需要做数据迁移的,对于海量存储系统来说,这将花费很长的时间和较高的系统代价。另外,存储系统是基于全局的负载均衡设计,数据可以写入到存储系统中任何一个空闲的存储节点,只有索引信息是需要写到固定的存储节点,因此采用本技术的存储系统灵活性更高,负载均衡的效果更显著。

【专利附图】

【附图说明】
[0031]图1是基于哈希环的分布式存储系统配置示意图;
[0032]图2是分步式存储系统在哈希环上查找数据读写的物理节点示意图;
[0033]图3是分步式存储系统增加新节点时节点索引信息迁移以及系统读取数据示意图;
[0034]图4是分步式存储系统进行写操作时系统负载均衡示意图;
[0035]图5是分步式存储系统读取数据流程图;
[0036]图6是分步式存储系统写入数据流程图。

【具体实施方式】
[0037]为了便于本领域技术人员的理解,下面结合实施例与附图对本发明技术方案做进一步的说明,实施方式提及的内容并非对本发明的限定。
[0038]实施例
[0039]参见图1,基于一般存储系统在增加新节点时需数据迁移而导致的系统扩容效率低,以及新旧节点的负载能力不同导致存储系统负载不均衡等问题,分布式存储系统通过系统管理模块配置一个抽象的基于哈希算法的环状结构一哈希环,所述哈希环上均匀分布虚拟节点,虚拟节点上可安装配置存储设备成为物理节点,所述物理节点上的存储设备划分为索引信息存储空间和数据信息存储空间;优先设置虚拟节点64个或1024个;
[0040]参见图3 ;当存储系统增加存储设备时,系统管理模块根据存储系统负载情况将此存储设备投射到哈希环上的所述虚拟节点上使之成为新的物理节点,再沿环的顺时针方向找到下一物理节点并将此物理节点存储的部分索引信息迁移到所述新的物理存储节点上,确保每个物理节点保存的索引信息占据一段哈希空间;
[0041]虚拟节点安装配置存储设备后,系统管理模块根据存储设备的CPU、内存、宽带等性能参数为每个物理节点配置相应的性能权值;系统进行读取请求后,系统管理模块根据物理节点内所述数据信息存储空间的负载情况为每个物理节点分配负载权值;同时系统管理模块根据物理节点的读写请求情况计算物理节点内所述索引信息存储空间的压力权值;
[0042]系统管理模块在存储系统运行过程中根据物理节点上报的物理节点内数据信息存储空间的负载权值、索引信息存储空间的压力权值以及物理节点性能权值计算出当前系统中所有物理节点的写优先权值;
[0043]当进行数据读写请求时,系统管理者先将需要读写的数据块进行哈希运算映射到哈希环上相应位置,然后沿顺时针方向找到最近的物理存储节点,再根据所述物理存储节点的索引信息进行数据的读取工作或根据所述物理存储节点的写优先权值进行数据的写入工作。
[0044]参照图2与图5,数据的读取过程如下:
[0045](I).当存储系统进行数据读取请求时,将要读取的数据映射到哈希环上的相应位置;
[0046](2).沿哈希环的顺时针方向定位到下一物理存储节点Dl上,读取此物理存储节点Dl的索引信息,取得数据实际存储的位置;
[0047]⑶.若数据存储在物理存储节点Dl上,则进行数据的读取;若数据不存储在物理存储节点Dl上,则根据索引信息定位数据实际存放的物理存储节点D2,进行数据的读取。
[0048]参照图4与图6,数据的写入过程如下:
[0049]①.预设物理节点的写优先权值的写入阀值;
[0050]②.当存储系统进行数据写入请求时,将数据块进行哈希运算并映射到哈希环上相应位置;
[0051]③.沿哈希环顺时针方向找到最近的物理存储节点Fl作为接受写请求的节点,根据物理存储节点的写优先权值,若物理存储节点Fl的写优先权值大于或等于预设的写入阀值,则将数据写入物理存储节点F1,并将索引信息写入物理存储节点Fl ;
[0052]④.若物理存储节点Fl的写优先权值小于预设的写优先权值的写入阀值,则查找写优先权值大于预设优先权值写入阀值的存储节点F2,将数据写入所述存储节点F2,并将索引信息写入所述存储节点Fl ;
[0053]具体地,所述数据的写入过程还包括,预设索引信息储存空间的可用空间阀值,若物理存储节点Fl索引信息存储空间的可用空间小于预设的可用空间阀值,则提示系统在物理存储节点Fl的逆时针方向相应虚拟节点配置新的存储设备,并将物理存储节点Fl索引信息储存空间内的部分索引信息迁移储存到所述新的存储设备上。
[0054]具体地,存储系统中物理节点的写优先权值计算公式为:
[0055]Xn = CRn*WVn*PVn ;其中X表示写优先权值,CR表示物理节点负载权值,WV表示物理节点压力权值,PV表示物理节点性能权值,η代表第η个物理节点。
[0056]具体地,所述物理节点负载权值(CR):当存储空间占用率在80%以下时,物理节点负载状态较好,CR = 10 ;空间占用率在80% -89%时物理节点负载状态正常,CR = 8 ;空间占用率在90% -99%时物理节点负载状态差,CR = 4 ;当物理节点存储空间占用率达到100%时,物理节点的存储空间不可用,CR = O。
[0057]具体地,物理节点的压力权值(WV),即存储系统中每个物理节点的读写请求数需定时上报给系统管理模块,物理节点上读写请求数越多说明节点的压力越大,物理节点越忙,系统管理模块根据物理节点的读写请求情况计算物理节点压力权值。例如:当物理节点的读写请求数为0-499时,WV = 10 ;当物理节点读写请求数为500-1000时,WV = 8 ;当物理节点读写请求数为1000-1999时,WV = 4 ;当物理节点读写请求数为2000-3999时,WV =2 ;当读写请求数为4000以上时,WV = I。
[0058]具体地,物理节点性能权值(PV),是根据物理节点硬件参数(例如存储设备类型、CPU的类型和数量、内存大小、数据接口类型等)的具体情况为物理节点分配的固定参数,通常同一批同类型设备的性能权值相同(例如:PV = 5)。
[0059]具体地,当物理存储节点的写优先权值高于写优先权值的写入阀值时(例如200),可直接执行写操作,否则写优先权值被认为较低,需要和其它节点进行比较以确定更适合执行写操作的物理节点。
[0060]具体地,当物理节点内索引信息存储空间占用率为80%时,可用空间阀值为100,当物理存储节点Fl索引信息存储空间的可用空间小于100时,则提示系统增加新的存储设备。
[0061]具体地,一种基于哈希环的非迁移分布式存储系统,包括哈希环、系统管理模块、虚拟节点和物理节点,所述虚拟节点和所述物理节点位于所述哈希环上,所述系统管理模块通过构建哈希环,负责对存储系统进行配置和管理,以及对物理节点进行状态监控。
[0062]具体地,所述存储系统还包括空间分配模块,空间分配模块为映射到环上的所有物理节点分配一定的哈希空间,数据经过哈希运算后的数值都可以映射到哈希环上的哈希空间中。
[0063]具体地,所述虚拟节点是指均匀分步在哈希环上的虚拟的点,在没有存储设备映射到虚拟节点上时,虚拟节点是空的,哈希环一旦构建完成,每个虚拟节点在环上的位置是固定的。所述物理节点是指系统管理者将存储设备映射到哈希环上的一个虚拟节点上后,此虚拟节点成为物理节点,每个物理节点负责一段哈希空间的数据读写请求,并提供数据存储功能。所述索引信息是指数据在存储系统中实际存放的信息。
[0064]具体地,所述相应的虚拟节点是指两物理节点中间或近似中间的虚拟节点,主要是为了保持哈希环上物理节点配置的均衡。
[0065]具体地,所述系统管理模块还能增加和删除物理节点。
[0066]本发明的有益效果:在存储系统扩容时,不需要移动实际存储的数据,只需要将占据环上相应范围位置的索引数据进行迁移,这将极大的提高系统扩容的效率,而通常的基于哈希环的系统是需要做数据迁移的,对于海量存储系统来说,这将花费很长的时间和较高的系统代价。另外,存储系统是基于全局的负载均衡设计,数据可以写入到存储系统中任何一个空闲的存储节点,只有索引信息是需要写到固定的存储节点,因此采用本技术的存储系统灵活性更高,负载均衡的效果更显著。
[0067]以上为本发明的较佳实施方式,但实施方式并不是用来限定本发明。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。
【权利要求】
1.一种基于哈希环的非迁移分布式存储方法,其特征在于,包括如下步骤: 51.分布式存储系统的系统管理模块配置一个抽象的基于哈希算法的环状结构一哈希环,所述哈希环上均匀分布虚拟节点,所述虚拟节点上可安装配置存储设备成为物理节点,所述物理节点上的存储设备划分为索引信息存储空间和数据信息存储空间; 52.系统管理模块根据存储设备的CPU、内存、宽带等性能参数为每个物理节点配置相应的性能权值; 53.系统进行读取请求后,系统管理模块根据物理节点内所述数据信息存储空间的负载情况为每个物理节点分配负载权值;同时系统管理模块根据物理节点的读写请求情况计算物理节点内所述索弓I信息存储空间的压力权值; 54.系统管理模块在存储系统运行过程中根据物理节点上报的物理节点内数据信息负载权值、索引信息的压力权值以及物理节点性能权值计算出当前系统中所有物理节点的写优先权值; 55.当进行数据读写请求时,系统管理者先将需要读写的数据块进行哈希运算映射到哈希环上相应位置,然后沿顺时针方向找到最近的物理存储节点,再根据所述物理存储节点的索引信息进行数据的读取工作或根据所述物理存储节点的写优先权值进行数据的写入工作。
2.根据权利要求1所述的基于哈希环的非迁移分布式存储方法,其特征在于,所述步骤S5的数据读取过程如下: 5511.当存储系统进行数据读取请求时,将要读取的数据映射到哈希环上的相应位置; 5512.沿哈希环的顺时针方向定位到下一物理存储节点Dl上,读取此物理存储节点的索引信息,取得数据实际存储的位置; 5513.若数据存储在所述存储节点Dl上,则进行数据的读取;若数据不存储在所述存储节点Dl上,则根据索引信息定位数据实际存放的存储节点D2,进行数据的读取。
3.根据权利要求1所述的基于哈希环的非迁移分布式存储方法,其特征在于,所述步骤S5数据的写入过程如下: 5521.预设物理节点的写优先权值的写入阀值; 5522.当存储系统进行数据写入请求时,将数据块进行哈希运算并映射到哈希环上相应位置; 5523.沿哈希环顺时针方向找到最近的物理存储节点Fl作为接受写请求的节点,根据物理存储节点的写优先权值,若物理存储节点Fl的写优先权值大于或等于预设的写入阀值,则将数据写入物理存储节点F1,并将索引信息写入物理存储节点Fl ; 5524.若物理存储节点Fl的写优先权值小于预设的写优先权值的写入阀值,则查找写优先权值大于预设优先权值写入阀值的存储节点F2,将数据写入所述存储节点F2,并将索引信息写入所述存储节点F1。
4.根据权利要求1或3所述的基于哈希环的非迁移分布式存储方法,其特征在于,数据的写入过程还包括以下步骤: 预设索引信息存储空间的可用空间阀值,若物理存储节点Fl索引信息存储空间的可用空间小于预设的可用空间阀值,则提示系统在物理存储节点Fl的逆时针方向相应虚拟节点配置新的存储设备,并将物理存储节点Fl索引信息储存空间内的部分索引信息迁移存储到所述新的存储设备上。
5.根据权利要求1所述的基于哈希环的非迁移分布式存储方法,其特征在于,所述步骤SI中虚拟节点为64个或1024个。
6.一种基于哈希环的非迁移分布式存储系统,包括哈希环、系统管理模块、虚拟节点和物理节点,所述虚拟节点和所述物理节点位于所述哈希环上,所述系统管理模块通过构建哈希环,负责对存储系统进行配置和管理,以及对物理节点进行状态监控。
7.根据权利要求6所述的基于哈希环的非迁移分布式存储系统,其特征在于,所述虚拟节点是指均匀分步在哈希环上的虚拟的点,在没有存储设备映射到虚拟节点上时,虚拟节点是空的,哈希环一旦构建完成,每个虚拟节点在环上的位置是固定的; 所述物理节点是指系统管理者将存储设备映射到哈希环上的一个虚拟节点上后,此虚拟节点成为物理节点,每个物理节点负责一段哈希空间的数据读写请求,并提供数据存储功能。
8.根据权利要求7所述的基于哈希环的非迁移分布式存储系统,其特征在于,所述存储系统还包括空间分配模块,空间分配模块为映射到环上的所有物理节点分配相应的哈希空间,数据经过哈希运算后的数值就可以映射到相应的哈希空间中。
9.根据权利要求8所述的基于哈希环的非迁移分布式存储系统,其特征在于,所述系统管理模块能增加和删除物理节点。
【文档编号】H04L29/08GK104378447SQ201410723737
【公开日】2015年2月25日 申请日期:2014年12月3日 优先权日:2014年12月3日
【发明者】龙德虎, 杨安民 申请人:深圳市鼎元科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1