一种数据存储的方法和存储服务器的制造方法

文档序号:6520823阅读:136来源:国知局
一种数据存储的方法和存储服务器的制造方法
【专利摘要】本发明实施例公开了一种数据存储的方法和存储服务器,其中所述方法包括:检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。采用本发明,可支持在海量存储中的硬盘容量异构。
【专利说明】一种数据存储的方法和存储服务器
【技术领域】
[0001]本发明涉及数据存储领域,尤其涉及一种数据存储的方法和存储服务器。
【背景技术】
[0002]海量分布式存储系统大多以对象作为基本存储形式,对象是数据和自描述信息的集合,是数据在磁盘上存储的基本单元,而实现这些对象的分散性分布则通常采用一致性哈希算法。虽然一致性哈希算法保证了系统数据存储的平衡性、分散性、容错性以及可扩展性等,但是一致性哈希算法并不是保证绝对的平衡,尤其在物理节点较少的情况下,对象并不能被均匀的映射到各个节点上。为了解决这种情况,一致性哈希算法引入了虚拟节点的概念,虚拟节点是物理节点在环形空间的复制品,一个物理节点对应了若干个虚拟节点,通过增加扩展虚拟节点数量,使得算法的平衡性得到较大的提升。
[0003]在现有技术中,海量存储系统一般均采用相同容量的硬盘来组建存储集群,为每个物理节点分配相同数量的虚拟节点,使得各个节点在存储容量上尽可能保持同步增长。
[0004]随着硬盘技术的不断发展,单盘的容量得到不断的提升,海量存储系统在扩容、部件更换时不可避免的会面临硬盘容量异构的问题,但是现有的存储方案无法支持在海量存储中的硬盘容量异构,从而降低产品的使用体验。

【发明内容】

[0005]本发明实施例所要解决的技术问题在于,提供一种数据存储的方法和存储服务器,可支持在海量存储中的硬盘容量异构。
[0006]本发明第一方面提供了一种数据存储的方法,包括:
[0007]检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0008]当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;
[0009]当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。
[0010]在第一种可能的实现方式中,在所述检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量之前,还包括:
[0011]在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节
占.[0012]其中,所述虚拟节点用于管理所存储的数据。
[0013]结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量之后,还包括:
[0014]检测在所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量是否达到预置的数量阈值;
[0015]若检测达到所述数量阈值,则确定所述初始容量等级对应硬盘超限。
[0016]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据,包括:
[0017]当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例;
[0018]根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,所述虚拟节点携带有所存储的数据。
[0019]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0020]当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级时,发送扩容提示信息。
[0021]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
[0022]当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,发送扩容提示信息。
[0023]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,或第一方面的第四种可能的实现方式,或第一方面的第五种可能的实现方式,在第六种可能的实现方式中,还包括:
[0024]在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移。
[0025]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,或第一方面的第四种可能的实现方式,或第一方面的第五种可能的实现方式,或第一方面的第六种可能的实现方式,在第七种可能的实现方式中,还包括:
[0026]当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识;
[0027]更新具有标识的硬盘容量等级以便于提升数据迁移性能。
[0028]本发明第二方面提供了一种存储服务器,包括:
[0029]使用量检测模块,用于检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0030]查找模块,用于当根据所述使用量检测模块检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次闻容量等级对应的硬盘;
[0031]确定迁移模块,用于当所述查找模块查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。
[0032]在第一种可能的实现方式中,还包括:
[0033]分配模块,用于在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点;
[0034]其中,所述虚拟节点用于管理所存储的数据。
[0035]结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0036]数量检测模块,用于检测在所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量是否达到预置的数量阈值;
[0037]确定模块,用于若检测达到所述数量阈值,则确定所述初始容量等级对应硬盘超限。
[0038]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述确定迁移模块包括:
[0039]比例确定单元,用于当所述查找模块查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例;
[0040]迁移单元,用于根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,所述虚拟节点携带有所存储的数据。
[0041]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0042]第一发送模块,用于当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级时,发送扩容提示信息。
[0043]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
[0044]第二发送模块,用于当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,发送扩容提示信息。
[0045]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,或第二方面的第四种可能的实现方式,或第二方面的第五种可能的实现方式,在第六种可能的实现方式中,还包括:
[0046]设置模块,用于在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移。
[0047]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,或第二方面的第四种可能的实现方式,或第二方面的第五种可能的实现方式,或第二方面的第六种可能的实现方式,在第七种可能的实现方式中,还包括:
[0048]标识模块,用于当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识;
[0049]更新模块,用于更新具有标识的硬盘容量等级以便于提升数据迁移性能。
[0050]本发明实施例通过根据硬盘实际容量划分出不同的硬盘容量等级,并在初始容量等级对应硬盘超限时对各个硬盘中携带有存储数据的虚拟节点进行迁移,使得不仅可以支持在海量存储中的硬盘容量异构,同时由于虚拟节点中的数据是按照迁移比例进行迁移的,所以还可以充分利用不同容量硬盘的存储空间。
【专利附图】

【附图说明】
[0051]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0052]图1为本发明实施例提供的一种数据存储的方法的流程示意图;[0053]图2为本发明实施例提供的另一种数据存储的方法的流程示意图[0054]图3为本发明实施例提供的又一种数据存储的方法的流程示意图[0055]图4为本发明实施例提供的又一种数据存储的方法的流程示意图[0056]图5为本发明实施例提供的其中一种更新容量等级的方法的流程示意图;[0057]图6为本发明实施例提供的一种存储服务器的结构示意图;[0058]图7为本发明实施例提供的另一种存储服务器的结构示意图;[0059]图8为本发明实施例提供的一种确定迁移模块的结构示意图。
【具体实施方式】
[0060]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0061]请参见图1,为本发明实施例提供的一种数据存储的方法的流程示意图,所述方法包括:
[0062]S101,检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0063]具体的,所述硬盘容量等级是根据硬盘实际容量进行划分的。例如,某个分布式存储系统中有1TB、2TB、3TB这三种容量的硬盘,那么可以配置ITB容量硬盘的硬盘容量等级为等级I,2TB容量硬盘的硬盘容量等级为等级2,3TB容量硬盘的硬盘容量等级为等级3。其中,所述初始容量等级是在已配置的硬盘容量等级中所选择的,例如,在系统初始化时,在已配置的硬盘容量等级中选择最小的硬盘容量等级作为初始容量等级,即在等级I至等级3的硬盘容量等级中,选择等级I的硬盘容量等级作为初始容量等级。在确定了所述初始容量等级后,可以检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量。例如,若初始容量等级为等级I的硬盘容量等级,则检测等级I的硬盘容量等级所对应的硬盘中已存储数据的容量大小。其中,所述硬盘可以包括固态硬盘、机械硬盘、混合硬盘等等。
[0064]S102,当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;
[0065]具体的,根据检测到的所述实际使用量可以检测所述初始容量等级对应硬盘是否超限。例如,初始容量等级为等级I的硬盘容量等级,且等级I的硬盘容量等级所对应硬盘的数量为10个,当检测到所述实际使用量超过硬盘容量50%的硬盘的数量达到8个时,可确定所述初始容量等级对应硬盘超限。当根据检测到的所述实际使用量确定出所述初始容量等级对应的硬盘超限时,可以查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘。例如,当存储系统中的硬盘可以分为等级1、等级2、等级3,且初始容量等级为等级I的硬盘容量等级时,可以查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘,即所述次高容量等级为等级2的硬盘容量等级对应的硬盘。
[0066]S103,当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据;
[0067]具体的,当查找到所述次高容量等级对应的硬盘时,可以根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。即将低硬盘容量等级的硬盘上的携带有存储数据的虚拟节点迁移至高硬盘容量等级的硬盘上,使得可以同时对所述虚拟节点以及存储于所述虚拟节点中的数据进行迁移。并且迁移后的数据仍可以映射于与原来对应的虚拟节点,从而可以继续正常的对迁移后的数据进行存储和提取。将低硬盘容量等级的硬盘中的虚拟节点以及存储于所述虚拟节点中的数据迁移至高硬盘容量等级的硬盘中,可以减少低硬盘容量等级的硬盘的存储负担,并充分的利用了高硬盘容量等级的硬盘的存储空间。另外,还可以使高硬盘容量等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0068]例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,硬盘实际容量分别为1TB、2TB、3TB,每种硬盘容量等级对应的硬盘数量相同,在系统初始化时,为每个硬盘容量等级所对应的硬盘分配48个虚拟节点,且所述初始容量等级为等级I的硬盘容量等级。当所述初始容量等级对应的硬盘超限时,将等级2的硬盘容量等级作为次高容量等级,并根据初始容量等级和次高容量等级确定虚拟节点的迁移比例,即等级1、等级2以及等级3的硬盘容量等级对应硬盘的迁移比例为1:2:2。其中高于次高容量等级的硬盘所获得的虚拟节点数量与次高容量等级的硬盘所获得虚拟节点数量相同,此时,等级I所对应硬盘中的虚拟节点按照1:2:2的迁移比例迁移至等级2和等级3的硬盘中。由于每个虚拟节点中携带有相同大小的数据,所以在虚拟节点迁移结束后,等级1、等级2以及等级3对应硬盘中所存储的数据大小比例也为1:2:2。此时,等级I对应硬盘中虚拟节点的数量为29个,等级2对应硬盘中虚拟节点的数量为57个,等级3对应硬盘中虚拟节点的数量为58个。在完成虚拟节点的迁移之后,还可以将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移,即在等级2的硬盘容量等级对应的硬盘超限时,确定等级I至等级3的硬盘的虚拟节点的迁移比例为1:2:3。使得在虚拟节点迁移结束后,等级I至等级3对应的硬盘中所存储的数据大小和虚拟节点的数量的比例均为1:2:3,即等级I对应的硬盘中虚拟节点的数量为24个,等级2对应的硬盘中虚拟节点的数量为48个,等级3对应的硬盘中虚拟节点的数量为64个。
[0069]又例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,硬盘实际容量分别为1TB、2TB、3TB,且每种硬盘容量等级对应的硬盘数量不相同,等级I对应的硬盘数量为20个,等级2对应的硬盘数量为30个,等级3对应的硬盘数量为40个。在系统初始化时,为每个硬盘容量等级所对应的硬盘分配48个虚拟节点,当等级I对应的硬盘超限,且等级2为次高容量等级时,所述迁移比例仍然为1:2:2,且在虚拟节点迁移结束后,等级I对应的硬盘中虚拟节点的数量为27个,等级2对应的硬盘中虚拟节点的数量为54个,等级3对应的硬盘中虚拟节点的数量为54个。
[0070]又例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,若等级I对应的硬盘容量为1.5TB,等级2对应的硬盘容量为2.5TB,等级3对应的硬盘容量为3.5TB,且等级I对应的硬盘超限、等级2为次高容量等级,则此时根据硬盘实际容量所确定的迁移比例为 1.5:2.5:2.5。
[0071 ] 本发明实施例通过根据硬盘实际容量划分出不同的硬盘容量等级,并在初始容量等级对应硬盘超限时对各个硬盘中携带有存储数据的虚拟节点进行迁移,使得不仅可以支持在海量存储中的硬盘容量异构,同时由于虚拟节点中的数据是按照迁移比例进行迁移的,所以还可以充分利用不同容量硬盘的存储空间,而且高等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0072]再请参见图2,为本发明实施例提供的另一种数据存储的方法的流程示意图,所述方法包括:
[0073]S201,在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点;
[0074]具体的,在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点,使得异构硬盘之间的数据接口尽可能的均衡到各个节点上。其中,所述虚拟节点用于管理所存储的数据。
[0075]S202,检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0076]具体的,所述硬盘容量等级是根据硬盘实际容量进行划分的,例如,某个分布式存储系统中有1TB、2TB、3TB这三种容量的硬盘,那么可以配置ITB容量硬盘的硬盘容量等级为等级I,2TB容量硬盘的硬盘容量等级为等级2,3TB容量硬盘的硬盘容量等级为等级3。其中,所述初始容量等级是在已配置的硬盘容量等级中所选择的,例如,在系统初始化时,在已配置的硬盘容量等级中选择最小的硬盘容量等级作为初始容量等级,即在等级I至等级3的硬盘容量等级中,选择等级I的硬盘容量等级作为初始容量等级。在确定了所述初始容量等级后,可以检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量。例如,若初始容量等级为等级I的硬盘容量等级,则检测等级I的硬盘容量等级所对应的硬盘中已存储数据的容量大小。
[0077]S203,检测在所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量是否达到预置的数量阈值;
[0078]S204,若检测达到所述数量阈值,则确定所述初始容量等级对应硬盘超限;
[0079]当检测到所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量达到预置的数量阈值时,确定所述初始容量等级对应硬盘超限。例如,初始容量等级为等级I的硬盘容量等级,等级I的硬盘容量等级所对应硬盘的数量为10个,且所述使用阈值为硬盘容量的50%,所述数量阈值为某个硬盘容量等级对应硬盘数量的80%。当检测到所述实际使用量超过硬盘容量50%的硬盘的数量达到8个时,可确定所述初始容量等级对应硬盘超限。
[0080]S205,当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;
[0081]当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,可以查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘。例如,当存储系统中的硬盘可以分为等级1、等级2、等级3,且初始容量等级为等级I的硬盘容量等级时,可以查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘,即所述次高容量等级为等级2的硬盘容量等级对应的硬盘。
[0082]S206,当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例;
[0083]S207,根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,所述虚拟节点携带有所存储的数据;
[0084]S208,将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移;
[0085]具体的,当查找到所述次高容量等级对应的硬盘时,可以根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。即将低硬盘容量等级的硬盘上的携带有存储数据的虚拟节点迁移至高硬盘容量等级的硬盘上,使得可以同时对所述虚拟节点以及存储于所述虚拟节点中的数据进行迁移。并且迁移后的数据仍可以映射于与原来对应的虚拟节点,从而可以继续正常的对迁移后的数据进行存储和提取。将低硬盘容量等级的硬盘中的虚拟节点以及存储于所述虚拟节点中的数据迁移至高硬盘容量等级的硬盘中,可以减少低硬盘容量等级的硬盘的存储负担,并充分的利用了高硬盘容量等级的硬盘的存储空间。另外,还可以使高硬盘容量等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0086]例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,硬盘实际容量分别为1TB、2TB、3TB,每种硬盘容量等级对应的硬盘数量相同,在系统初始化时,为每个硬盘容量等级所对应的硬盘分配48个虚拟节点,且所述初始容量等级为等级I的硬盘容量等级。当所述初始容量等级对应的硬盘超限时,将等级2的硬盘容量等级作为次高容量等级,并根据初始容量等级和次高容量等级确定虚拟节点的迁移比例,即等级1、等级2以及等级3的硬盘容量等级对应硬盘的迁移比例为1:2:2。其中高于次高容量等级的硬盘所获得的虚拟节点数量与次高容量等级的硬盘所获得虚拟节点数量相同,此时,等级I所对应硬盘中的虚拟节点按照1:2:2的迁移比例迁移至等级2和等级3的硬盘中。由于每个虚拟节点中携带有相同大小的数据,所以在虚拟节点迁移结束后,等级1、等级2以及等级3对应硬盘中所存储的数据大小比例也为1:2:2。此时,等级I对应硬盘中虚拟节点的数量为29个,等级2对应硬盘中虚拟节点的数量为57个,等级3对应硬盘中虚拟节点的数量为58个。在完成虚拟节点的迁移之后,还可以将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移,即在等级2的硬盘容量等级对应的硬盘超限时,确定等级I至等级3的硬盘的虚拟节点的迁移比例为1:2:3。使得在虚拟节点迁移结束后,等级I至等级3对应的硬盘中所存储的数据大小和虚拟节点的数量的比例均为1:2:3,即等级I对应的硬盘中虚拟节点的数量为24个,等级2对应的硬盘中虚拟节点的数量为48个,等级3对应的硬盘中虚拟节点的数量为64个。
[0087]又例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,硬盘实际容量分别为1TB、2TB、3TB,且每种硬盘容量等级对应的硬盘数量不相同,等级I对应的硬盘数量为20个,等级2对应的硬盘数量为30个,等级3对应的硬盘数量为40个,在系统初始化时,为每个硬盘容量等级所对应的硬盘分配48个虚拟节点,当等级I对应的硬盘超限,且等级2为次高容量等级时,所述迁移比例仍然为1:2:2,且在虚拟节点迁移结束后,等级I对应的硬盘中虚拟节点的数量为27个,等级2对应的硬盘中虚拟节点的数量为54个,等级3对应的硬盘中虚拟节点的数量为54个。
[0088]又例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,若等级I对应的硬盘容量为1.5TB,等级2对应的硬盘容量为2.5TB,等级3对应的硬盘容量为3.5TB,且等级I对应的硬盘超限、等级2为次高容量等级,则此时根据硬盘实际容量所确定的迁移比例为 1.5:2.5:2.5。
[0089]本发明实施例通过根据硬盘实际容量划分出不同的硬盘容量等级,并在初始容量等级对应硬盘超限时对各个硬盘中携带有存储数据的虚拟节点进行迁移,使得不仅可以支持在海量存储中的硬盘容量异构,同时由于虚拟节点中的数据是按照迁移比例进行迁移的,所以还可以充分利用不同容量硬盘的存储空间,而且高等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0090]再请参见图3,为本发明实施例提供的又一种数据存储的方法的流程示意图,所述方法包括:
[0091]S301,检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0092]S302,当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;
[0093]S303,当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级时,发送扩容提示信息;
[0094]具体的,当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级时,则说明初始容量等级对应的硬盘为硬盘容量等级中的最高等级,为了让存储系统可以继续存储数据,可以进行扩容,即可以发送扩容提示信息到管理员的终端,以提示管理员需要对存储系统进行扩容。
[0095]S304,在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移;
[0096]具体的,在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。例如,存储系统中,有1TB、2TB、3TB容量的硬盘,分别对应的硬盘容量等级为等级1、等级2、等级3,硬盘实际容量分别为1TB、2TB、3TB,并且当前的初始容量等级为等级3的硬盘容量等级。当初始容量等级所对应硬盘超限,且增加有4TB容量的硬盘时,将4TB容量的硬盘设置为等级4的硬盘容量等级,并根据1:2:3:4的迁移比例在等级I至等级4的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。当初始容量等级所对应硬盘没有超限,且增加有4TB容量的硬盘时,将4TB容量的硬盘设置为等级4的硬盘容量等级,并根据1:2:3:3的迁移比例在等级I至等级4的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。在扩容或更换硬盘时,对携带有存储数据的虚拟节点进行迁移可以使存储系统继续正常存储数据。
[0097]其中,步骤S301至S302的具体实现方式可以参见上述图1对应实施例中的SlOl至S102的具体实现方式,这里不再进行赘述。
[0098]本发明实施例通过发送扩容提示信息,可以对存储系统进行扩容,并在扩容或更换硬盘时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移,使得扩容后的存储系统仍然可以充分利用不同容量硬盘的存储空间,同时还可以兼顾性能的平衡性。
[0099]再请参见图4,为本发明实施例提供的又一种数据存储的方法的流程示意图,所述方法包括:
[0100]S401,检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0101]S402,当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;
[0102]S403,当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据;
[0103]S404,当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,发送扩容提示信息;
[0104]具体的,当所述次高容量等级对应的硬盘超限、且所述次高容量等级不为已配置的等级中最大的硬盘容量等级时,可以将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移。当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,说明存储系统中没有比所述次高容量等级更高的硬盘容量等级所对应的硬盘,为了让存储系统可以继续正常工作则需要进行扩容,即可以发送扩容提示信息到管理员的终端,以提示管理员需要对存储系统进行扩容。
[0105]S405,在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移;
[0106]具体的,在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。例如,存储系统中,有1TB、2TB、3TB容量的硬盘,分别对应的硬盘容量等级为等级1、等级2、等级3,并且当前的初始容量等级为等级3的硬盘容量等级,当初始容量等级所对应硬盘超限,且增加有4TB容量的硬盘时,将4TB容量的硬盘设置为等级4的硬盘容量等级,并根据1:2:3:4的迁移比例在等级I至等级4的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移;当初始容量等级所对应硬盘没有超限,且增加有4TB容量的硬盘时,将4TB容量的硬盘设置为等级4的硬盘容量等级,并根据1:2:3:3的迁移比例在等级I至等级4的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。在扩容或更换硬盘时,对携带有存储数据的虚拟节点进行迁移可以使存储系统继续正常存储数据。
[0107]其中,步骤S401至S403的具体实现方式可以参见上述图1对应实施例中的SlOl至S103的具体实现方式,这里不再进行赘述。
[0108]本发明实施例通过发送扩容提示信息,可以对存储系统进行扩容,并在扩容或更换硬盘时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移,使得扩容后的存储系统仍然可以充分利用不同容量硬盘的存储空间,同时还可以兼顾性能的平衡性。
[0109]再请参见图5,为本发明实施例提供的其中一种更新容量等级的方法的流程示意图,所述方法包括:
[0110]S501,当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识;
[0111]S502,更新具有标识的硬盘容量等级以便于提升数据迁移性能;
[0112]具体的,当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识,并更新具有标识的硬盘容量等级以便于提升数据迁移性能,更新的方法可以是将具有标识的硬盘容量等级重新设置为较低级的硬盘容量等级。例如,在存储系统中,可以预设所述比例阈值为20%,即当某种硬盘容量等级对应的硬盘数量低于所有硬盘总数的20%,则将该种硬盘容量等级对应的硬盘视作低等级的硬盘使用,当存储系统中ITB的硬盘数量为40个,2TB的硬盘数量为10个,4TB的硬盘数量为50个时,将2TB的硬盘所对应的硬盘容量等级从等级2降为等级1,以减少系统的抖动和提升数据迁移的性能。由于硬盘容量兼容主要为了兼容高容量硬盘,因此对于数量较少的硬盘种类可以不做考虑。
[0113]本发明实施例通过对数量较少的硬盘种类所对应的硬盘容量等级进行更新,以将该种硬盘视作低等级的硬盘使用,可以减少系统的抖动和提升数据迁移的性能。
[0114]请参见图6,为本发明实施例提供的一种存储服务器I的结构示意图,所述存储服务器I可以包括:使用量检测模块10、查找模块20、确定迁移模块30 ;
[0115]所述使用量检测模块10,用于检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0116]具体的,所述使用量检测模块10可以检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量。其中,所述硬盘容量等级是根据硬盘实际容量进行划分的,例如,某个分布式存储系统中有1TB、2TB、3TB这三种容量的硬盘,那么可以配置ITB容量硬盘的硬盘容量等级为等级I, 2TB容量硬盘的硬盘容量等级为等级2,3TB容量硬盘的硬盘容量等级为等级3。其中,所述初始容量等级是在已配置的硬盘容量等级中所选择的,例如,在系统初始化时,在已配置的硬盘容量等级中选择最小的硬盘容量等级作为初始容量等级,即在等级I至等级3的硬盘容量等级中,选择等级I的硬盘容量等级作为初始容量等级。在确定了所述初始容量等级后,所述使用量检测模块10可以检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,例如,若初始容量等级为等级I的硬盘容量等级,则所述使用量检测模块10可以检测等级I的硬盘容量等级所对应的硬盘中已存储数据的容量大小。
[0117]所述查找模块20,用于当根据所述使用量检测模块10检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次闻容量等级对应的硬盘;
[0118]具体的,当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,所述查找模块20可以查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘。例如,当存储系统中的硬盘可以分为等级1、等级2、等级3,且初始容量等级为等级I的硬盘容量等级时,所述查找模块20可以查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘,即所述次高容量等级为等级2的硬盘容量等级对应的硬盘。
[0119]所述确定迁移模块30,用于当所述查找模块20查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据;
[0120]具体的,当所述查找模块20查找到所述次高容量等级对应的硬盘时,所述确定迁移模块30可以根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据,即所述确定迁移模块30将低硬盘容量等级的硬盘上的携带有存储数据的虚拟节点迁移至高硬盘容量等级的硬盘上,使得可以同时对所述虚拟节点以及存储于所述虚拟节点中的数据进行迁移。并且迁移后的数据仍可以映射于与原来对应的虚拟节点,从而可以继续正常的对迁移后的数据进行存储和提取。所述确定迁移模块30将低硬盘容量等级的硬盘中的虚拟节点以及存储于所述虚拟节点中的数据迁移至高硬盘容量等级的硬盘中,可以减少低硬盘容量等级的硬盘的存储负担,并充分的利用了高硬盘容量等级的硬盘的存储空间,另外,还可以使高硬盘容量等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0121]例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,硬盘实际容量分别为1TB、2TB、3TB,每种硬盘容量等级对应的硬盘数量相同,在系统初始化时,为每个硬盘容量等级所对应的硬盘分配48个虚拟节点,且所述初始容量等级为等级I的硬盘容量等级。当所述初始容量等级对应硬盘超限时,将等级2的硬盘容量等级作为次高容量等级,所述确定迁移模块30可以根据初始容量等级和次高容量等级确定虚拟节点的迁移比例,即等级1、等级2以及等级3的硬盘容量等级对应硬盘的迁移比例为1:2:2。其中高于次高容量等级的硬盘所获得的虚拟节点数量与次高容量等级的硬盘所获得虚拟节点数量相同,此时,所述确定迁移模块30将等级I对应硬盘中的虚拟节点按照1:2:2的迁移比例迁移至等级2和等级3的硬盘中。由于每个虚拟节点中携带有相同大小的数据,所以在虚拟节点迁移结束后,等级1、等级2以及等级3对应硬盘中所存储的数据大小比例也为1:2:2。此时,等级I对应硬盘中虚拟节点的数量为29个,等级2对应硬盘中虚拟节点的数量为57个,等级3对应硬盘中虚拟节点的数量为58个。
[0122]本发明实施例通过根据硬盘实际容量划分出不同的硬盘容量等级,并在初始容量等级对应硬盘超限时对各个硬盘中携带有存储数据的虚拟节点进行迁移,使得不仅可以支持在海量存储中的硬盘容量异构,同时由于虚拟节点中的数据是按照迁移比例进行迁移的,所以还可以充分利用不同容量硬盘的存储空间,而且高等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0123]再请参见图7,为本发明实施例提供的另一种存储服务器I的结构示意图,所述存储服务器I可以包括:分配模块40、使用量检测模块10、数量检测模块50、确定模块60、查找模块20、第一发送模块70、确定迁移模块30、次高迁移模块90、第二发送模块80、设置模块100、标识模块110、更新模块120 ;
[0124]所述分配模块40,用于在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点;
[0125]具体的,在系统初始化时,所述分配模块40可以对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点,使得异构硬盘之间的数据接口尽可能的均衡到各个节点上。其中,所述虚拟节点用于管理所存储的数据。
[0126]所述使用量检测模块10,用于检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;
[0127]具体的,所述使用量检测模块10可以检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量。其中,所述硬盘容量等级是根据硬盘实际容量进行划分的,例如,某个分布式存储系统中有1TB、2TB、3TB这三种容量的硬盘,那么可以配置ITB容量硬盘的硬盘容量等级为等级I, 2TB容量硬盘的硬盘容量等级为等级2,3TB容量硬盘的硬盘容量等级为等级3。其中,所述初始容量等级是在已配置的硬盘容量等级中所选择的,例如,在系统初始化时,在已配置的硬盘容量等级中选择最小的硬盘容量等级作为初始容量等级,即在等级I至等级3的硬盘容量等级中,选择等级I的硬盘容量等级作为初始容量等级。在确定了所述初始容量等级后,所述使用量检测模块10可以检测已配置的硬盘容量等级中初始容量等级所对应硬盘的实际使用量,例如,若初始容量等级为等级I的硬盘容量等级,则所述使用量检测模块10可以检测等级I的硬盘容量等级所对应的硬盘中已存储数据的容量大小。
[0128]所述数量检测模块50,用于检测在所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量是否达到预置的数量阈值;
[0129]所述确定模块60,用于若检测达到所述数量阈值,则确定所述初始容量等级对应硬盘超限;[0130] 当所述数量检测模块50检测到所述初始容量等级对应硬盘中实际使用量超过预置的使用阈值的硬盘数量达到预置的数量阈值时,所述确定模块60可以确定所述初始容量等级对应硬盘超限。例如,初始容量等级为等级I的硬盘容量等级,等级I的硬盘容量等级所对应硬盘的数量为10个,且所述使用阈值为硬盘容量的50%,所述数量阈值为某个硬盘容量等级对应硬盘数量的80%,当所述数量检测模块50检测到所述实际使用量超过硬盘容量50%的硬盘的数量达到8个时,所述确定模块60可确定所述初始容量等级对应硬盘超限。
[0131]所述查找模块20,用于当根据所述使用量检测模块10检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次闻容量等级对应的硬盘;
[0132]具体的,当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,所述查找模块20可以查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘,例如,当存储系统中的硬盘可以分为等级1、等级2、等级3,且初始容量等级为等级I的硬盘容量等级时,所述查找模块20可以查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘,即所述次高容量等级为等级2的硬盘容量等级。
[0133]所述第一发送模块70,用于当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次闻容量等级时,发送扩容提不?目息;
[0134]具体的,当所述查找模块20未查找到已配置的硬盘容量等级中高于所述初始容量等级的次闻容量等级时,则说明初始容量等级对应的硬盘为硬盘容量等级中的最闻等级,为了让存储系统可以继续存储数据,可以进行扩容,即所述第一发送模块70可以发送扩容提示信息到管理员的终端,以提示管理员需要对存储系统进行扩容。
[0135]所述确定迁移模块30,用于当所述查找模块20查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据;
[0136]所述次高迁移模块90,用于将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移;
[0137]具体的,当所述查找模块20查找到所述次高容量等级对应的硬盘时,所述确定迁移模块30可以根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据,即所述确定迁移模块30将低硬盘容量等级的硬盘上的携带有存储数据的虚拟节点迁移至高硬盘容量等级的硬盘上,使得可以同时对所述虚拟节点以及存储于所述虚拟节点中的数据进行迁移。并且迁移后的数据仍可以映射于与原来对应的虚拟节点,从而可以继续正常的对迁移后的数据进行存储和提取。所述确定迁移模块30将低硬盘容量等级的硬盘中的虚拟节点以及存储于所述虚拟节点中的数据迁移至高硬盘容量等级的硬盘中,可以减少低硬盘容量等级的硬盘的存储负担,并充分的利用了高硬盘容量等级的硬盘的存储空间,另外,还可以使高硬盘容量等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0138]例如,存储系统中硬盘容量等级包括等级1、等级2以及等级3,硬盘实际容量分别为1TB、2TB、3TB,每种硬盘容量等级对应的硬盘数量相同,在系统初始化时,为每个硬盘容量等级所对应的硬盘分配48个虚拟节点,且所述初始容量等级为等级I的硬盘容量等级。当所述初始容量等级对应硬盘超限时,将等级2的硬盘容量等级作为次高容量等级,所述确定迁移模块30可以根据初始容量等级和次高容量等级确定虚拟节点的迁移比例,即等级1、等级2以及等级3的硬盘容量等级对应硬盘的迁移比例为1:2:2。其中高于次高容量等级的硬盘所获得的虚拟节点数量与次高容量等级的硬盘所获得虚拟节点数量相同,此时,所述确定迁移模块30将等级I对应硬盘中的虚拟节点按照1:2:2的迁移比例迁移至等级2和等级3的硬盘中。由于每个虚拟节点中携带有相同大小的数据,所以在虚拟节点迁移结束后,等级1、等级2以及等级3对应硬盘中所存储的数据大小比例也为1:2:2。此时,等级I对应硬盘中虚拟节点的数量为29个,等级2对应硬盘中虚拟节点的数量为57个,等级3对应硬盘中虚拟节点的数量为58个。在完成数据的迁移之后,所述次高迁移模块90还可以将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移,即在等级2的硬盘容量等级对应的硬盘超限时,所述确定迁移模块30可以确定等级I至等级3的硬盘迁移比例为1:2:3,使得在虚拟节点迁移结束后,等级I至等级3对应的硬盘中所存储的数据大小和虚拟节点的数量的比例均为1:2:3,即等级I对应硬盘中虚拟节点的数量为24个,等级2对应硬盘中虚拟节点的数量为48个,等级3对应硬盘中虚拟节点的数量为64个。
[0139]所述第二发送模块80,用于当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,发送扩容提示信息;
[0140]具体的,当所述次高容量等级对应的硬盘超限、且所述次高容量等级不为已配置的等级中最大的硬盘容量等级时,所述次高迁移模块90可以将所述次高容量等级作为初始容量等级以进行虚拟节点的迁移。当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,说明存储系统中没有比所述次高容量等级更高的硬盘容量等级所对应的硬盘,为了让存储系统可以继续正常工作则需要进行扩容,即所述第二发送模块80可以发送扩容提示信息到管理员的终端,以提示管理员需要对存储系统进行扩容。
[0141]所述设置模块100,用于在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移;
[0142]具体的,在扩容或硬盘更换时,所述设置模块100可以对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。例如,存储系统中,有1TB、2TB、3TB容量的硬盘,分别对应的硬盘容量等级为等级1、等级2、等级3,并且当前的初始容量等级为等级3的硬盘容量等级,当初始容量等级所对应硬盘超限,且增加有4TB容量的硬盘时,所述设置模块100将4TB容量的硬盘设置为等级4的硬盘容量等级,并由所述确定迁移模块30根据1:2:3:4的迁移比例在等级I至等级4的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移;当初始容量等级所对应硬盘没有超限,且增加有4TB容量的硬盘时,所述设置模块100将4TB容量的硬盘设置为等级4的硬盘容量等级,并由所述确定迁移模块30根据1:2:3:3的迁移比例在等级I至等级4的硬盘容量等级所对应硬盘之间进行虚拟节点的迁移。在扩容或更换硬盘时,对携带有存储数据的虚拟节点进行迁移可以使存储系统继续正常存储数据。
[0143]所述标识模块110,用于当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识;
[0144]所述更新模块120,用于更新具有标识的硬盘容量等级以便于提升数据迁移性倉泛;
[0145]具体的,当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,所述标识模块110可以对小于所述比例阈值的硬盘容量等级进行标识,并由所述更新模块120更新具有标识的硬盘容量等级以便于提升数据迁移性能,更新的方法可以是将具有标识的硬盘容量等级重新设置为较低级的硬盘容量等级。例如,在存储系统中,可以预设所述比例阈值为20%,当某种硬盘容量等级对应的硬盘数量低于所有硬盘总数的20%时,所述标识模块110对该种硬盘容量等级进行标识,并由所述更新模块120将标识后的硬盘容量等级设置为较低级的硬盘容量等级,即将该种硬盘容量等级对应的硬盘视作低等级的硬盘使用,当存储系统中ITB的硬盘数量为40个,2TB的硬盘数量为10个,4TB的硬盘数量为50个时,所述标识模块110可以对2TB的硬盘对应的硬盘容量等级进行标识,并由所述更新模块120将具有标识的硬盘容量等级从等级2降为等级1,即将2TB的硬盘视作ITB的硬盘进行使用,以减少系统的抖动和提升数据迁移的性能。由于硬盘容量兼容主要为了兼容高容量硬盘,因此对于数量较少的硬盘种类可以不做考虑。
[0146]进一步的,再请参见图8,为本发明实施例提供的一种确定迁移模块30的结构示意图,所述确定迁移模块30包括:比例确定单元3001、迁移单元3002 ;
[0147]所述比例确定单元3001,用于当所述查找模块20查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例;
[0148]所述迁移单元3002,用于根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,所述虚拟节点携带有所存储的数据;
[0149]具体的,当所述查找模块20查找到所述次高容量等级对应的硬盘时,所述比例确定单元3001可以根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,所述迁移单元3002可以根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,使得所述迁移单元3002可以同时对所述虚拟节点以及存储于所述虚拟节点中的数据进行迁移,并且迁移后的数据仍可以映射于与原来对应的虚拟节点,从而可以继续正常的对迁移后的数据进行存储和提取。所述迁移单元3002将低等级的硬盘中的虚拟节点以及存储于所述虚拟节点中的数据迁移至高等级的硬盘中,可以减少低等级的硬盘的存储负担,并充分的利用了高等级的硬盘的存储空间,另外,还可以使高等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0150]本发明实施例通过根据硬盘实际容量划分出不同的硬盘容量等级,并在初始容量等级对应硬盘超限时对各个硬盘中携带有存储数据的虚拟节点进行迁移,使得不仅可以支持在海量存储中的硬盘容量异构,同时由于虚拟节点中的数据是按照迁移比例进行迁移的,所以还可以充分利用不同容量硬盘的存储空间,而且高等级的硬盘可以拥有更多的虚拟节点以分担更多存储工作,从而可以提高性能的平衡性,并进一步的充分利用大容量硬盘的存储空间。
[0151]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0152]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种数据存储的方法,其特征在于,包括: 检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的; 当根据检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘; 当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。
2.如权利要求1所述的方法,其特征在于,在所述检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量之前,还包括: 在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点; 其中,所述虚拟节点用于管理所存储的数据。
3.如权利要求1或2所述的方法,其特征在于,在所述检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量之后,还包括: 检测在所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量是否达到预置的数量阈值; 若检测达到所述数量阈值,则确定所述初始容量等级对应硬盘超限。
4.如权利要求1至3任一项`所述的方法,其特征在于,所述当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据,包括: 当查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例; 根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,所述虚拟节点携带有所存储的数据。
5.如权利要求1至4任一项所述的方法,其特征在于,还包括: 当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级时,发送扩容提示信息。
6.如权利要求1至5任一项所述的方法,其特征在于,还包括: 当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,发送扩容提示信息。
7.如权利要求1至6任一项所述的方法,其特征在于,还包括: 在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移。
8.如权利要求1至7任一项所述的方法,其特征在于,还包括: 当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识; 更新具有标识的硬盘容量等级以便于提升数据迁移性能。
9.一种存储服务器,其特征在于,包括:使用量检测模块,用于检测已配置的硬盘容量等级中初始容量等级对应硬盘的实际使用量,所述硬盘容量等级是根据硬盘实际容量进行划分的;查找模块,用于当根据所述使用量检测模块检测到的所述实际使用量确定出所述初始容量等级对应硬盘超限时,查找已配置的硬盘容量等级中高于所述初始容量等级的次高容量等级对应的硬盘;确定迁移模块,用于当所述查找模块查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例,并根据所述迁移比例在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移,所述虚拟节点携带有所存储的数据。
10.如权利要求9所述的存储服务器,其特征在于,还包括:分配模块,用于在系统初始化时,对已配置的硬盘容量等级所对应的硬盘分配相同数量的虚拟节点;其中,所述虚拟节点用于管理所存储的数据。
11.如权利要求9或10所述的存储服务器,其特征在于,还包括:数量检测模块,用于检测在所述初始容量等级对应硬盘的实际使用量超过预置的使用阈值的硬盘数量是否达到预置的数量阈值;确定模块,用于若检测达到所述数量阈值,则确定所述初始容量等级对应硬盘超限。
12.如权利要求9至11任一项所述的存储服务器,其特征在于,所述确定迁移模块包括:比例确定单元,用于当所述查找模块查找到所述次高容量等级对应的硬盘时,根据所述初始容量等级、所述次高容量等级以及所述硬盘实际容量确定虚拟节点的迁移比例;迁移单元,用于根据所述迁移比例将低于所述次高容量等级的硬盘容量等级所对应硬盘中的所述虚拟节点,迁移至高于或等于所述次高容量等级的硬盘容量等级所对应的硬盘,所述虚拟节点携带有所存储的数据。
13.如权利要求9至12任一项所述的存储服务器,其特征在于,还包括:第一发送模块,用于当未查找到已配置的硬盘容量等级中高于所述初始容量等级的次闻容量等级时,发送扩容提不?目息。
14.如权利要求9至13任一项所述的存储服务器,其特征在于,还包括:第二发送模块,用于当所述次高容量等级对应的硬盘超限、且所述次高容量等级为已配置的等级中最大的硬盘容量等级时,发送扩容提示信息。
15.如权利要求9至14任一项所述的存储服务器,其特征在于,还包括:设置模块,用于在扩容或硬盘更换时,对新增或更换的硬盘设置对应的硬盘容量等级以便于在已配置的硬盘容量等级所对应的硬盘之间进行虚拟节点的迁移。
16.如权利要求9至15任一项所述的存储服务器,其特征在于,还包括:标识模块,用于当检测到已配置的硬盘容量等级中对应的硬盘数量占总硬盘数量的比例小于比例阈值时,对小于所述比例阈值的硬盘容量等级进行标识;更新模块,用于更新具有标识的硬盘容量等级以便于提升数据迁移性能。
【文档编号】G06F3/06GK103605484SQ201310611665
【公开日】2014年2月26日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】林大云 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1