一种用于海量数据管理的多盘位存储方法及系统的制作方法

文档序号:6536823阅读:159来源:国知局
一种用于海量数据管理的多盘位存储方法及系统的制作方法【专利摘要】本发明涉及一种用于海量数据管理的多盘位存储方法及系统,所述方法包括:建立四层树型的数据存储结构,即一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;在每个数据存储节点上设置一个多盘位管理器,用于维护当前数据存储节点的磁盘信息,并在多盘位管理器的管理下,在磁盘中进行数据分片的增加或删除;通过多盘位管理器,对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。本发明既能充分利用多盘的并行读写的特点,又能够最小化数据盘出现故障时对其他盘的数据的影响,同时还能够不增加数据的冗余度,大大提高了系统效率。【专利说明】一种用于海量数据管理的多盘位存储方法及系统【
技术领域
】[0001]本发明涉及海量数据存储管理研究领域,特别是涉及一种用于海量数据管理的多盘位存储方法及系统。【
背景技术
】[0002]随着Web2.0、移动互联网、微博等社交网络应用的高速发展,全世界每年产生的数据都呈指数形式增长。为了维护、管理这些海量数据,学术界、工业界设计开发了形形色色的海量数据管理系统,影响力比较大的有:BigTable、HBase>Hypertable、Cassandra、MongoDB等。这些数据管理系统都没有对存储节点多磁盘的情况提供特定的处理策略和优化方案:BigTable、HBase>Hypertable将数据存储在分布式文件系统GFS、Hadoop上,而Cassandra、MongoDB没有提供特定的多磁盘处理策略。若要充分利用多盘,则只能在操作系统级别配置相应的多磁盘管理技术。常用的多磁盘管理技术有=RAID技术和LVM条带化技术。[0003]RAID技术的全称为“独立冗余磁盘阵列”,也简称:“磁盘阵列”,它利用多个硬盘的组合提供高效率及冗余的功能。常用的RAID级别有:RAID0、RAIDURAID3、RAID5、RAID10、RAID30、RAID50和JOBD等。RAIDO、RAID5连续地分割数据并并行地读/写于多个磁盘上,具有很高的数据传输率,但RAIDO在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效,将影响整个数据。以HBase为例:HBase的数据存储最小粒度单位为Region,一般大小设置在64MB,所有的Region的数据都拆分成多个更小的存储单元并行存储在多个磁盘,若一个盘发生故障,相当与整个节点的数据发生故障,故不可取;RAIDl是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”,而现有的海量数据管理系统在逻辑层一般已经配置了多个备份(例如:一般将备份参数设置为3),若采用RAIDl技术,则实际上每份数据在集群中有6个备份,大大降低了硬盘的使用效率,也不可取;RAID3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,RAID3,安全性是可以得到保障的,但是RAID3在读写速度方面相对较慢,尤其是当某个盘发生故障时,系统需要很长时间地进行数据恢复,从而影响该节点的数据读写,这与海量数据存储系统要求高吞吐率的设计理念不相符合。其他的RAID级别均与RAIDO、RAIDl、RAID3和RAID5技术类似。因此,RAID技术并不能够在效率、磁盘空间利用率以及数据的冗余度方面达到一个很好地平衡。[0004]LVMstriping技术的原理如图1所示:它也将一块连续的数据分成很多小部分并把它们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/o并行能力,从而获得非常好的性能。但是它也存在与RAIDO相同的问题。[0005]因此,本发明提出了一种用于海量数据管理的多盘位存储方法及系统,以解决上述问题。【
发明内容】[0006]本发明所要解决的技术问题是提出一种用于海量数据管理的多盘位存储方法及系统,用于解决海量数据管理中对数据存储节点多磁盘处理策略存在不足的技术问题。[0007]本发明解决上述技术问题的技术方案如下:一种用于海量数据管理的多盘位存储方法,包括:[0008]步骤I,建立四层树型的数据存储结构,从上到下依次是:一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;[0009]步骤2,在每个数据存储节点上设置一个多盘位管理器,用于维护当前数据存储节点的磁盘信息,并在多盘位管理器的管理下,在磁盘中进行数据分片的增加或删除;[0010]步骤3,通过多盘位管理器,对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。[0011]在上述技术方案的基础上,本发明还可以做如下改进。[0012]进一步,数据存储节点内部的磁盘分为系统安装盘和表数据盘,所述系统安装盘用于存储海量数据存储中产生的系统文件、数据和日志信息,所述表数据盘用于存储表数据,且所述多盘位管理器管理所述表数据盘。[0013]进一步,一个多盘位管理器维护多个磁盘管理器,且每个磁盘管理器管理一个表数据盘,用于间接实现多盘位管理器管理表数据盘,且磁盘管理器对表数据盘的管理包括:维护当前表数据盘对应的目录信息、目录前缀信息;收集当前表数据盘已经使用的百分比、总的表数据盘空间、已经使用的表数据盘空间、非Root用户仍然使用的表数据盘空间和当前表数据盘所存储的数据分片总数。[0014]进一步,数据存储节点的磁盘信息包括:磁盘的状态信息、磁盘的使用情况、磁盘的剩余空间情况和每个磁盘所存储的数据分片信息。[0015]进一步,所述在多盘位管理器的管理下,在磁盘中进行数据分片的增加具体包括:[0016]步骤21,启动多盘位管理器,统计每个磁盘的使用情况,若有磁盘对应的使用百分比超过预设的上限值,则将该磁盘对应的磁盘状态标志位设置为false;[0017]步骤22,在所有的磁盘状态标志位为true的磁盘中,找到存储的数据分片数量最小的磁盘所对应的目录,并返回该目录,将该目录作为新增加的数据分片的存储目录,按该存储目录存储数据分片。[0018]进一步,若给出了新增加的数据分片的大小,则在步骤22中,在满足以下要求的磁盘中找到存储的数据分片数量最小的磁盘:磁盘当前使用量和新增加数据分片的大小之和小于预设值,且磁盘状态标志位为true。[0019]进一步,所述在多盘位管理器的管理下,在磁盘中进行数据分片的删除具体包括:数据存储节点首先删除待删除数据分片的元数据信息,然后通过多盘位管理器得到待删除数据分片的数据文件的实际存储目录,删除该存储目录。[0020]进一步,通过多盘位管理器对数据存储节点内部各磁盘间的负载进行负载均衡分析,具体包括:保证每个磁盘剩余空间大于10GB,当所有的磁盘的剩余可用空间均大于IOGB时,通过比较每个磁盘的使用的百分比来进行负载均衡的迁移方向判定,按确定的迁移方向在各磁盘间进行负载迁移。[0021]进一步,所述进行负载均衡的迁移方向判定具体包括:[0022]步骤3A1,计算每个磁盘的剩余可用空间和使用百分比;[0023]步骤3A2,根据每个磁盘的剩余可用空间和使用百分比来计算迁移的优先级,使用百分比越高,迁移的优先级越高;[0024]步骤3A3,将优先级最高的磁盘上的数据分片信息向优先级最低的磁盘迁移,将低于最高优先级一个级别的磁盘上的数据分片信息向高于最低优先级一个级别的有磁盘迁移,依次类推,并保证各磁盘的已使用空间低于设定的阀值。[0025]进一步,对各数据存储节点之间的负载进行负载均衡分析,具体包括:确定迁移的目标数据存储节点后,需要先向该数据存储节点发送请求以及将要迁移的数据分片上的数据大小,目标数据存储节点返回对应目录信息后,再将数据发送到目标数据存储节点,若目标数据存储节点没有返回目录信息,说明目标数据存储节点的磁盘空间不足,则不能往该目标数据存储节点进行数据迁移。[0026]对应地,本发明的技术方案还包括一种用于海量数据管理的多盘位存储系统,包括四层树型的数据存储结构,从上到下依次是:一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;在每个数据存储节点上设置有一个多盘位管理器,所述多盘位管理器用于维护当前数据存储节点的磁盘信息和管理在磁盘中进行数据分片增加或删除,还用于对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。[0027]进一步,数据存储节点内部的磁盘分为系统安装盘和表数据盘,所述系统安装盘用于存储海量数据存储中产生的系统文件、数据和日志信息,所述表数据盘用于存储表数据,且所述多盘位管理器用于管理所述表数据盘。[0028]进一步,一个多盘位管理器上维护有多个磁盘管理器,且每个磁盘管理器管理一个表数据盘。[0029]本发明的有益效果是:本发明提出了一种用于海量数据管理的多盘位存储技术,该技术既能充分利用多盘的并行读写的特点,又能够最小化数据盘出现故障时对其他盘的数据的影响,同时还能够不增加数据的冗余度,本发明在Hypertable系统中进行了实现,实验证明能够大大提高系统的效率,且具备良好的适应性和可扩展性。【专利附图】【附图说明】[0030]图1为现有技术中采用LVMstriping的技术原理图;[0031]图2为本发明所述多盘位存储方法的流程示意图;[0032]图3为本发明实施例中四层树型的数据存储结构的示例图;[0033]图4为本发明实施例中数据存储节点的多盘位管理体系结构的示意图。【具体实施方式】[0034]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。[0035]如图2所示,实施例一给出了一种用于海量数据管理的多盘位存储方法,包括:[0036]步骤I,建立四层树型的数据存储结构,从上到下依次是:一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;[0037]步骤2,在每个数据存储节点上设置一个多盘位管理器,用于维护当前数据存储节点的磁盘信息,并在多盘位管理器的管理下,在磁盘中进行数据分片的增加或删除;[0038]步骤3,通过多盘位管理器,对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。[0039]其中,所述步骤2中数据存储节点的磁盘信息包括:磁盘的状态信息、磁盘的使用情况、磁盘的剩余空间情况和每个磁盘所存储的数据分片信息。[0040]对应的用于海量数据管理的多盘位存储系统即包括四层树型的数据存储结构,从上到下依次是:一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;在每个数据存储节点上设置有一个多盘位管理器,所述多盘位管理器用于维护当前数据存储节点的磁盘信息和管理在磁盘中进行数据分片增加或删除,还用于对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。[0041]如图3所示,即示意了四层树型的数据存储结构,包括一个Master节点、三个数据存储节点(数据存储节点1、数据存储节点2和数据存储节点3)、每个数据存储节点下各有三个磁盘(磁盘1、磁盘2和磁盘3)、磁盘下对应存储四个数据分片(B1、B2、B3和B4)。采用这种4层树型的数据存储与分布策略,Master节点对全局的数据进行调度,决定数据的副本存储在哪些数据存储节点,数据存储节点的多盘位管理器决定本数据存储节点的数据分片存储在哪个磁盘。[0042]如图4所示,给出了采用多盘位管理器的数据存储节点的架构图。数据存储节点的磁盘被分成2类:第I类叫做系统安装盘,用于存储海量数据存储的系统文件和数据,同时用于存储系统的日志信息;第2类叫做表数据盘,用于存储表数据。每个数据存储节点维护一个多盘位管理器,该多盘位管理器维护管理了多个磁盘管理器,每个磁盘管理一个磁盘:主要负责维护当前磁盘对应的目录信息和目录前缀信息;同时负责收集当前磁盘已经使用的百分比、总的磁盘空间、已经使用的磁盘空间、非Root用户仍然使用的磁盘空间和当前磁盘所存储的数据分片总数。图中所述其他数据为日志之类的信息,且其与数据分片、表数据盘和系统安装盘均连接一个文件系统,用于将相应数据传入文件系统中进行保护。[0043]采用多盘位管理器,主要完成以下几项功能:在磁盘中进行数据分片的增加或删除、删除指定表、各数据存储节点之间的负载均衡、以及数据存储节点内部各磁盘间的负载均衡。[0044]—、在磁盘中进行数据分片的增加[0045]具体包括以下两个步骤:步骤21,启动多盘位管理器,统计每个磁盘的使用情况,若有磁盘对应的使用百分比超过预设的上限值,则将该磁盘对应的磁盘状态标志位设置为false。[0046]步骤22,在所有的磁盘状态标志位为true的磁盘中,找到存储的数据分片数量最小的磁盘所对应的目录,并返回该目录,将该目录作为新增加的数据分片的存储目录,按该存储目录存储数据分片。需注意的是,若给出了新增加的数据分片的大小,则在在满足以下要求的磁盘中找到存储的数据分片数量最小的磁盘:磁盘当前使用量和新增加数据分片的大小之和小于预设值,且磁盘状态标志位为true。[0047]二、在磁盘中进行数据分片的删除[0048]数据存储节点首先删除待删除数据分片的元数据信息,然后通过多盘位管理器得到待删除数据分片的数据文件的实际存储目录,删除该存储目录。[0049]三、各数据存储节点之间的负载均衡[0050]确定迁移的目标数据存储节点后,需要先向该数据存储节点发送请求以及将要迁移的数据分片上的数据大小,目标数据存储节点返回对应目录信息后,再将数据发送到目标数据存储节点,若目标数据存储节点没有返回目录信息,说明目标数据存储节点的磁盘空间不足,则不能往该目标数据存储节点进行数据迁移。[0051]四、数据存储节点内部各磁盘间的负载均衡[0052]需保证每个磁盘剩余空间大于10GB,当所有的磁盘的剩余可用空间均大于IOGB时,通过比较每个磁盘的使用的百分比来进行负载均衡的迁移方向判定,按确定的迁移方向在各磁盘间进行负载迁移。[0053]所述进行负载均衡的迁移方向判定具体包括:[0054]步骤3A1,计算每个磁盘的剩余可用空间和使用百分比;[0055]步骤3A2,根据每个磁盘的剩余可用空间和使用百分比来计算迁移的优先级,使用百分比越高,迁移的优先级越高;[0056]步骤3A3,将优先级最高的磁盘上的数据分片信息向优先级最低的磁盘迁移,将低于最高优先级一个级别的磁盘上的数据分片信息向高于最低优先级一个级别的有磁盘迁移,依次类推,并保证各磁盘的已使用空间低于设定的阀值。[0057]对于步骤3A3,例如系统中有6个盘,磁盘利用率如下表所示:[0058]【权利要求】1.一种用于海量数据管理的多盘位存储方法,其特征在于,包括:步骤1,建立四层树型的数据存储结构,从上到下依次是:一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;步骤2,在每个数据存储节点上设置一个多盘位管理器,用于维护当前数据存储节点的磁盘信息,并在多盘位管理器的管理下,在磁盘中进行数据分片的增加或删除;步骤3,通过多盘位管理器,对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。2.根据权利要求1所述的多盘位存储方法,其特征在于,数据存储节点内部的磁盘分为系统安装盘和表数据盘,所述系统安装盘用于存储海量数据存储中产生的系统文件、数据和日志信息,所述表数据盘用于存储表数据,且所述多盘位管理器管理所述表数据盘。3.根据权利要求2所述的多盘位存储方法,其特征在于,一个多盘位管理器维护多个磁盘管理器,且每个磁盘管理器管理一个表数据盘,用于间接实现多盘位管理器管理表数据盘,且磁盘管理器对表数据盘的管理包括:维护当前表数据盘对应的目录信息、目录前缀信息;收集当前表数据盘已经使用的百分比、总的表数据盘空间、已经使用的表数据盘空间、非Root用户仍然使用的表数据盘空间和当前表数据盘所存储的数据分片总数。4.根据权利要求1所述的多盘位存储方法,其特征在于,所述在多盘位管理器的管理下,在磁盘中进行数据分片的增加具体包括:步骤21,启动多盘位管理器,统计每个磁盘的使用情况,若有磁盘对应的使用百分比超过预设的上限值,则将该磁盘对应的磁盘状态标志位设置为false;步骤22,在所有的磁盘状态标志位为true的磁盘中,找到存储的数据分片数量最小的磁盘所对应的目录,并返回该目录,将该目录作为新增加的数据分片的存储目录,按该存储目录存储数据分片。5.根据权利要求1所述的多盘位存储方法,其特征在于,所述在多盘位管理器的管理下,在磁盘中进行数据分片的删除具体包括:数据存储节点首先删除待删除数据分片的元数据信息,然后通过多盘位管理器得到待删除数据分片的数据文件的实际存储目录,删除该存储目录。6.根据权利要求1所述的多盘位存储方法,其特征在于,通过多盘位管理器对数据存储节点内部各磁盘间的负载进行负载均衡分析,具体包括:保证每个磁盘剩余空间大于IOGB,当所有的磁盘的剩余可用空间均大于IOGB时,通过比较每个磁盘的使用的百分比来进行负载均衡的迁移方向判定,按确定的迁移方向在各磁盘间进行负载迁移。7.根据权利要求6所述的多盘位管理方法,其特征在于,所述进行负载均衡的迁移方向判定具体包括:步骤3A1,计算每个磁盘的剩余可用空间和使用百分比;步骤3A2,根据每个磁盘的剩余可用空间和使用百分比来计算迁移的优先级,使用百分比越高,迁移的优先级越高;步骤3A3,将优先级最高的磁盘上的数据分片信息向优先级最低的磁盘迁移,将低于最高优先级一个级别的磁盘上的数据分片信息向高于最低优先级一个级别的有磁盘迁移,依次类推,并保证各磁盘的已使用空间低于设定的阀值。8.根据权利要求1所述的多盘位存储方法,其特征在于,对各数据存储节点之间的负载进行负载均衡分析,具体包括:确定迁移的目标数据存储节点后,需要先向该数据存储节点发送请求以及将要迁移的数据分片上的数据大小,目标数据存储节点返回对应目录信息后,再将数据发送到目标数据存储节点,若目标数据存储节点没有返回目录信息,说明目标数据存储节点的磁盘空间不足,则不能往该目标数据存储节点进行数据迁移。9.一种用于海量数据管理的多盘位存储系统,其特征在于,包括四层树型的数据存储结构,从上到下依次是:一个Master节点、位于Master节点下的若干数据存储节点、位于各数据存储节点下的若干磁盘和位于各磁盘下的若干数据分片;在每个数据存储节点上设置有一个多盘位管理器,所述多盘位管理器用于维护当前数据存储节点的磁盘信息和管理在磁盘中进行数据分片增加或删除,还用于对各数据存储节点之间的负载进行负载均衡分析,且同时对数据存储节点内部各磁盘间的负载进行负载均衡分析。10.根据权利要求9所述的多盘位存储系统,其特征在于,数据存储节点内部的磁盘分为系统安装盘和表数据盘,所述系统安装盘用于存储海量数据存储中产生的系统文件、数据和日志信息,所述表数据盘用于存储表数据,一个多盘位管理器上维护有多个磁盘管理器,且每个磁盘管理器管理一个表数据盘。【文档编号】G06F9/50GK103761059SQ201410035889【公开日】2014年4月30日申请日期:2014年1月24日优先权日:2014年1月24日【发明者】王海平,王树鹏,张永铮,吴广君,周晓阳申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1