本发明涉及分布式存储技术领域,特别是涉及一种分布式存储系统中文件副本数量的确定方法及装置。
背景技术:
分布式文件系统中,通常对于每个文件来说,都在系统内的其它数据节点存储有其对应的副本。以副本的形式存放,主要有两个优势:首先是提高了系统的可靠性,当某一个数据节点因为不可控因素而失效时,这个数据节点的文件在其他数据节点上都有备份,从而保证系统中的数据从整体来看仍然是可用的;同时也提高了数据读取的响应速度,即在不同的数据节点存放了同一个文件的副本,在读取时可以选择当前访问速度最快的数据节点来获取数据,从而提高系统整体的响应速度。
现有技术中通常是按照经验值对各文件的副本数量进行统一的规定。很容易理解的是,从提高系统可靠性的方面来看,副本的数量是越多越好,但是副本数量的增多,也会导致存储空间的浪费及增加数据一致性的维护代价。因此,副本数量较大会带来存储空间上的压力,另外,如果副本数量较小则容易降低系统的可靠性。
因此,如何合理设置系统内文件的副本数量,既能满足可靠性的要求,又不会对存储空间造成较大不利影响是本领域技术人员亟待解决的问题。
技术实现要素:
本发明的目的是提供一种分布式存储系统中文件副本数量的确定方法及装置,用于合理设置系统内文件的副本数量,既能满足可靠性的要求,又不会对存储空间造成较大不利影响。
为解决上述技术问题,本发明提供一种分布式存储系统中文件副本数量的确定方法,包括:
存储预先建立的各文件的等级分类以及各所述等级分类对应的可靠性阈值;
当获取到副本存放请求时,根据所述副本存储请求获取对应的文件的目标等级分类以确定所述目标等级分类对应的目标可靠性阈值;
根据预先建立的可靠性计算规则计算出达到所述目标可靠性阈值所需的数据节点的数量;
其中,所述可靠性计算规则的参数包括数据节点的平均无故障时间、数据节点的数量和可靠性时间,所述文件的副本数量为所需的数据节点的数量。
优选地,所述根据预先建立的可靠性计算规则计算出达到所述目标可靠性阈值所需的数据节点的数量具体包括:
选取系统中其余的任意一个数据节点存储所述文件的副本;
依据所述可靠性计算规则计算所述文件的当前可靠性;
判断当前可靠性是否大于所述目标可靠性阈值;
如果否,则返回所述选取系统中其余的任意一个数据节点存储所述文件的副本的步骤;
如果是,则所需的数据节点的数量为当前系统中存储所述副本的数据节点的数量。
优选地,所述根据预先建立的可靠性计算规则计算出达到所述目标可靠性阈值所需的数据节点的数量具体包括:
选取系统中其余的数据节点中可靠性最高的节点存储所述文件的副本;
依据所述可靠性计算规则计算所述文件的当前可靠性;
判断当前可靠性是否大于所述目标可靠性阈值;
如果否,则返回所述选取系统中其余的数据节点中可靠性最高的节点存储所述文件的副本的步骤;
如果是,则所需的数据节点的数量为当前系统中存储所述副本的数据节点的数量。
优选地,所述根据预先建立的可靠性计算规则计算出达到所述目标可靠性阈值所需的数据节点的数量具体包括:
选取系统中其余的数据节点中负载率最低的节点存储所述文件的副本;
依据所述可靠性计算规则计算所述文件的当前可靠性;
判断当前可靠性是否大于所述目标可靠性阈值;
如果否,则返回所述选取系统中其余的数据节点中负载率最低的节点存储所述文件的副本的步骤;
如果是,则所需的数据节点的数量为当前系统中存储所述副本的数据节点的数量。
优选地,所述可靠性计算规则具体为:
其中,当i=0时,θ0为所述文件存储在数据节点n0上的平均无故障时间,当i=1-k时,θ1-θk表示所述文件的副本分别存储在数据节点n1-nk上的平均无故障时间,t表示可靠性时间。
优选地,所述等级分类包括三个等级,按照等级的级别对应的可靠性阈值分别为99.99%、99%、95%。
优选地,还包括:
记录存放所述文件的数据节点以及存放所述文件的副本的数据节点。
优选地,还包括:
当任意一个数据节点发生故障且发生故障的数据节点在记录的数据节点内时,则更新记录。
为解决上述技术问题,本发明还提供一种分布式存储系统中文件副本数量的确定装置,包括:
存储单元,用于存储预先建立的各文件的等级分类以及各所述等级分类对应的可靠性阈值;
确定单元,用于当获取到副本存放请求时,根据所述副本存储请求获取对应的文件的目标等级分类以确定所述目标等级分类对应的目标可靠性阈值;
计算单元,用于根据预先建立的可靠性计算规则计算出达到所述目标可靠性阈值所需的数据节点的数量;
其中,所述可靠性计算规则的参数包括数据节点的平均无故障时间、数据节点的数量和可靠性时间,所述文件的副本数量为所需的数据节点的数量。
本发明所提供的分布式存储系统中文件副本数量的确定方法,包括:存储预先建立的各文件的等级分类以及各所述等级分类对应的可靠性阈值;当获取到副本存放请求时,根据所述副本存储请求获取对应的文件的目标等级分类以确定所述目标等级分类对应的目标可靠性阈值;根据预先建立的可靠性计算规则计算出达到所述目标可靠性阈值所需的数据节点的数量;其中,所述可靠性计算规则的参数包括数据节点的平均无故障时间、数据节点的数量和可靠性时间,所述文件的副本数量为所需的数据节点的数量。本方法是通过文件的等级分类和可靠性阈值两个参数共同决定的,并不是文件的副本数量进行统一的规定。因此,该方法不仅能够保证重要的文件的可靠性较高,且普通的文件的副本不会占用太大的存储空间,既能满足可靠性的要求,又不会对存储空间造成较大不利影响。此外,本发明所提供的分布式存储系统中文件副本数量的确定装置同样具有上述有效效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式存储系统中文件副本数量的确定方法的流程图;
图2为本发明实施例提供的一种步骤s12的流程图;
图3为本发明实施例提供的另一种步骤s12的流程图;
图4为本发明实施例提供的另一种步骤s12的流程图;
图5为本发明实施例提供的另一种分布式存储系统中文件副本数量的确定方法的流程图;
图6为本发明实施例提供的一种分布式存储系统中文件副本数量的确定装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种分布式存储系统中文件副本数量的确定方法及装置,用于合理设置系统内文件的副本数量,既能满足可靠性的要求,又不会对存储空间造成较大不利影响。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种分布式存储系统中文件副本数量的确定方法的流程图。如图1所示,分布式存储系统中文件副本数量的确定方法包括:
s10:存储预先建立的各文件的等级分类以及各等级分类对应的可靠性阈值。
s11:当获取到副本存放请求时,根据副本存储请求获取对应的文件的目标等级分类以确定目标等级分类对应的目标可靠性阈值。
s12:根据预先建立的可靠性计算规则计算出达到目标可靠性阈值所需的数据节点的数量。
其中,可靠性计算规则的参数包括数据节点的平均无故障时间、数据节点的数量和可靠性时间,文件的副本数量为所需的数据节点的数量。
需要说明的是,步骤s10中,文件的等级分类和可靠性阈值可以根据系统的实际情况而定,并没有严格的限制。对于等级分类的数量也可以灵活更改。作为优选的实施方式,等级分类包括三个等级,按照等级的级别对应的可靠性阈值分别为99.99%、99%、95%,如表1所示。
表1
设某个数据节点n的平均无故障时间为θn小时,则在此数据节点上未来t小时内发生故障的可能性服从指数分布
因此,作为一种优选的实施方式,可靠性计算规则具体为:
其中,当i=0时,θ0为文件存储在数据节点n0上的平均无故障时间,当i=1-k时,θ1-θk表示文件的副本分别存储在数据节点n1-nk上的平均无故障时间,t表示可靠性时间。需要说明的是,数据节点n0是存放文件的数据节点,而数据节点n1-nk上是存放文件的副本的数据节点。上式表示,在未来t小时内,文件的可靠性的计算结果。
存放副本的主要目的还是提高系统中数据的可靠性,因此可以根据存放文件的可靠性属性来决定当前的文件的副本数量是否满足要求。对于一个不重要的文件来说,存放的副本如果很多,则容易造成存储压力过大,另外,有的数据节点的可靠性非常高,如果将副本存放在这样的数据节点,则该文件的可靠性就非常高,并不需要存放太多的副本。同样的,存放副本的数据节点的可靠性都很差,则存放再多的副本,这个文件的可靠性还是较低的。因此,本实施例中,以存放副本的数据节点的可靠性(平均无故障时间)、以及数据节点的数量和可靠性时间为参数,来确定文件的可靠性,进而决定文件存放的副本数量。
之所以选取上述三个参数是因为,一个文件的可靠性,与副本数量成正比,与平均无故障时间成正比。也就是说,副本数量越多,文件越安全;副本所在的数据节点可靠性越高,文件也越安全。在本实施例中,并不对文件的副本数量进行统一的规定,而是对文件的等级类型进行划分,并规定相应的可靠性阈值。因此,上述方法不仅能够保证重要的文件的可靠性较高,且普通的文件的副本不会占用太大的存储空间,既能满足可靠性的要求,又不会对存储空间造成较大不利影响。
以一个简单的例子进行说明:如果一个很重要的文件,其等级为最高,可靠性阈值为99.99%,将这个文件的副本存放在10个数据节点上后,根据可靠性计算规则计算后,发现这个文件的可靠性还没有达到99.99%,因此,还需再剩余的其它数据节点上继续存放副本,直到达到99.99%。例如,第15个数据节点将这个文件的副本存放之后,这个文件的可靠性达到了99.99%,则说明这个文件的副本只需要这15个数据节点存放即可,并不需要其他数据节点存放了。如果一个普通的文件,其等级为最低,可靠性阈值为95%,将这个文件的副本存档在5个数据节点上后,根据可靠性计算规则计算后,发现这个文件的可靠性已经达到96%,超过了95%,则说明这个文件的副本只需要这5个数据节点存放即可,并不需要其他数据节点存放了。
需要强调的是,由于文件的可靠性是否达到可靠性阈值与每个数据节点自身的可靠性是相关的,如果用不同的数据节点存放副本,则可能可靠性的计算结果是不同的。换句话说,对于达到同一个可靠性阈值,可能选择5个可靠性较高的数据节点存放副本即可,或者可能选择10个可靠性较低的数据节点存放副本即可。至于如果选取,后续的实施例将逐一描述。
本实施例提供的分布式存储系统中文件副本数量的确定方法是通过文件的等级分类和可靠性阈值两个参数共同决定的,并不是文件的副本数量进行统一的规定。因此,该方法不仅能够保证重要的文件的可靠性较高,且普通的文件的副本不会占用太大的存储空间,既能满足可靠性的要求,又不会对存储空间造成较大不利影响。
图2为本发明实施例提供的一种步骤s12的流程图。作为优选的实施方式,步骤s12具体包括:
s20:选取系统中其余的任意一个数据节点存储文件的副本。
s21:依据可靠性计算规则计算文件的当前可靠性。
s22:判断当前可靠性是否大于目标可靠性阈值,如果否,则返回s20,如果是,进入步骤s23。
s23:所需的数据节点的数量为当前系统中存放副本的数据节点的数量。
本实施例中是按照随机选取的方式实现数据节点的选取,可以理解的是,步骤s20中系统中其余的数据节点只是当前系统中,没有存放文件或该文件的副本的数据节点。例如,有15个数据节点,第1个数据节点存放了文件,则此时系统中的其余的数据节点就是第2个-第15个数据节点,如果将第2个数据节点存放了该文件的副本,则此时系统中的其余的数据节点就是第3个-第15个数据节点,即同一个数据节点不重复存放同一个文件的相关信息,包括文件本身和副本。
由于是任意选取的数据节点,因此能够节约存放副本的时间。但是考虑到在具体实施中,如果任意的存储,这有可能导致可靠性高的数据节点存放的副本较少,可靠性低的数据节点存放的副本较多,则势必会增加副本的数量。因此,下一个实施例中将会重点说明。
图3为本发明实施例提供的另一种步骤s12的流程图。作为优选的实施方式,步骤s12具体包括:
s30:选取系统中其余的数据节点中可靠性最高的节点存储文件的副本。
s31:依据可靠性计算规则计算文件的当前可靠性。
s32:判断当前可靠性是否大于目标可靠性阈值;如果否,则返回s30,如果是,则进入s33。
s33:所需的数据节点的数量为当前系统中存放副本的数据节点的数量。
本实施例中,依据可靠性的高低作为选取的数据节点的顺序,即先选取可靠性较高的数据节点进行副本的存放,这样可以降低副本的数量。
图4为本发明实施例提供的另一种步骤s12的流程图。作为优选的实施方式,步骤s12具体包括:
s40:选取系统中其余的数据节点中负载率最低的节点存储文件的副本。
s41:依据可靠性计算规则计算文件的当前可靠性。
s42:判断当前可靠性是否大于目标可靠性阈值,如果否,则返回s40,如果是,则进入s43。
s43:所需的数据节点的数量为当前系统中存放副本的数据节点的数量。
本实施例中,依据负载率的高低作为选取的数据节点的顺序,即先选取负载率较低的数据节点进行副本的存放,这样可以提供负载均衡性能,避免某一个数据节点存放有大量的副本,而有的数据节点存放了很少的副本。
图5为本发明实施例提供的另一种分布式存储系统中文件副本数量的确定方法的流程图。与上述实施例相同的步骤本实施例不再赘述。如图5所示,分布式存储系统中文件副本数量的确定方法还包括:
s50:记录存放文件的数据节点以及存放文件的副本的数据节点。
在步骤s50之后还包括:
s51:当任意一个数据节点发生故障且发生故障的数据节点在记录的数据节点内时,则更新记录。
通过步骤s50和步骤s51可以及时获取系统内数据节点对于各文件的副本的存放情况。
在上述各实施例中详细描述了分布式存储系统中文件副本数量的确定方法,同时,本发明还提供与上述方法对应的装置。由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。图6为本发明实施例提供的一种分布式存储系统中文件副本数量的确定装置的结构图。如图6所示,包括:
存储单元10,用于存储预先建立的各文件的等级分类以及各等级分类对应的可靠性阈值;
确定单元11,用于当获取到副本存放请求时,根据副本存储请求获取对应的文件的目标等级分类以确定目标等级分类对应的目标可靠性阈值;
计算单元12,用于根据预先建立的可靠性计算规则计算出达到目标可靠性阈值所需的数据节点的数量;
其中,可靠性计算规则的参数包括数据节点的平均无故障时间、数据节点的数量和可靠性时间,文件的副本数量为所需的数据节点的数量。
以上对本发明所提供的分布式存储系统中文件副本数量的确定方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。