基于GlusterFS分布式文件系统的离线去重方法与流程

文档序号:15492391发布日期:2018-09-21 20:52阅读:883来源:国知局

本发明属于glusterfs分布式文件系统领域,具体涉及一种基于glusterfs分布式文件系统的离线去重方法。



背景技术:

glusterfs是一种扩展性较好的网络文件系统,可以解决网络存储,联合存储,冗余备份和大文件负载均衡等问题。所以,在分布式存储系统中得到了广泛的应用。但是,不乏缺少一些关键特性,如相同文件的去重处理。

传统单机文件系统能够实现相同文件的去重,但是无法有效的与分布式文件系统相结合,并且,这些问题在相当长的一段时间内依然是无法解决的,大大限制了分布式存储系统的发展。



技术实现要素:

本发明所要解决的技术问题是针对上述现有技术的不足提供一种基于glusterfs分布式文件系统的离线去重方法,本基于glusterfs分布式文件系统的离线去重方法解决分布式文件系统中可能存在的大量重复数据的问题。

为实现上述技术目的,本发明采取的技术方案为:

一种基于glusterfs分布式文件系统的离线去重方法,包括以下步骤:

步骤1::遍历分布式文件系统中的所有的文件,采用哈希算法计算出所有文件的哈希值;

步骤2:将文件的大小和该文件的哈希值作为key值,建立哈希树;

步骤3:判断分布式文件系统中是否存在大小相同且哈希值相同的多个文件,如果存在,选择一组大小相同且哈希值相同的多个文件并将该多个文件均标记为相同文件,将所述相同文件添加到相同文件所对应的节点指向的链表中;

步骤4:根据分布式文件系统中每个存储设备的剩余容量大小和每个存储设备中存储的所述相同文件的个数从分布式文件系统中选择一个存储设备并将该存储设备标记为指定移动存储设备;

步骤5:将分布式文件系统中的存储设备中存储的所述相同文件均移动到指定移动存储设备中;

步骤6:采用文件去重方法从指定移动存储设备中删除所述相同文件,保证所述相同文件只有一份,返回执行步骤3,直到将分布式文件系统包含的所有组合的相同文件均进行去重操作,结束。

进一步地,所述的步骤4包括以下步骤:

(1)读取分布式文件系统中每个存储设备的剩余容量大小,并判断分布式文件系统中每个存储设备中存储的所述相同文件的个数;

(2)将每个存储设备按照存储的所述相同文件的个数大小进行降序排列,即将存储的所述相同文件的个数最多的存储设备排在第一位,将排在第一位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,若大于,则将待确定移动存储设备标记为指定移动存储设备,否则,执行步骤(3);

(3)将排在第二位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的相同文件的总大小,若大于,则将该待确定移动存储设备标记为指定移动存储设备,否则,将排在第三位的存储设备标记为待确定移动存储设备,按照上面的顺序进行判断直到选取一个排位在前面的存储设备且该存储设备的剩余容量大小大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,选取的存储设备即为指定移动存储设备。

进一步地,所述相同文件包括相同的设备文件和相同的链接文件。

本发明的有益效果为:本发明有效地解决了分布式存储中可能存在的大量重复数据的问题,大大提升了分布式存储系统的存储能力,且本发明去重处理速度快,效果好。去重方式采用离线去重,可以后台闲时启动,对用户操作文件的影响更小;预先筛选文件,缩小去重范围,提高去重效率。

附图说明

图1为本发明的工作流程图。

具体实施方式

下面根据图1对本发明的具体实施方式作出进一步说明:

本发明提供了一种基于glusterfs分布式文件系统的离线去重方法,有效地解决了分布式存储中可能存在的大量重复数据的问题,大大提升了分布式存储系统的存储能力。

参见图1,一种基于glusterfs分布式文件系统的离线去重方法,包括以下步骤:

步骤1:glusterfs层负责全目录扫描所有的文件,采用murmur3哈希算法计算出所有文件的哈希值;

步骤2:glusterfs层将每个文件的大小和哈希值作为key值,建立哈希树;

步骤3:判断分布式文件系统中是否存在大小相同且哈希值相同的多个文件,如果存在,选择一组大小相同且哈希值相同的多个文件并将该多个文件均标记为相同文件,将所述相同文件添加到相同文件所对应的节点指向的链表中;其中,分布式文件系统中可能存在多组相同文件;

步骤4:glusterfs层根据每个存储设备的剩余容量大小和每个存储设备中存储的所述相同文件的个数从分布式文件系统中选择一个存储设备并将该存储设备标记为指定移动存储设备,从而确定相同文件的移动策略,所述的移动策略包括移动前确定的策略,或者移动过程中,发现目标存储设备容量不足,重新规划的移动策略;步骤4的移动策略的确定方法具体包括以下步骤:

(1)读取分布式文件系统中每个存储设备的剩余容量大小,并判断分布式文件系统中每个存储设备中存储的所述相同文件的个数;

(2)将每个存储设备按照存储的所述相同文件的个数大小进行降序排列,即将存储的所述相同文件的个数最多的存储设备排在第一位,将排在第一位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,若大于,则将待确定移动存储设备标记为指定移动存储设备,从而减少相同文件移动的次数,否则,执行步骤(3);

(3)将排在第二位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的相同文件的总大小,若大于,则将该待确定移动存储设备标记为指定移动存储设备,否则,将排在第三位的存储设备标记为待确定移动存储设备,按照上面的顺序进行判断直到选取一个排位在前面的存储设备且该存储设备的剩余容量大小大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,选取的存储设备即为指定移动存储设备;

步骤5:将分布式文件系统中的存储设备中存储的所述相同文件均移动到指定移动存储设备中;

步骤6:采用传统单机文件系统去重方法从指定移动存储设备中删除所述相同文件,保证所述相同文件只有一份,返回执行步骤3,直到将分布式文件系统包含的所有组合的相同文件均进行去重操作,结束。

所述相同文件包括相同的设备文件和相同的链接文件。本实施例的文件相同与否的判断基于文件内容生成的哈希值和文件的大小,所述的传统单机文件系统包括xfs,zfs等;所述的剩余容量大小是通过实时读取目标存储设备的剩余存储空间获取,以剩余容量最多的设备作为移动策略的依据之一;所述的文件移动的次数是指所有相同文件移动到目标存储设备共需要移动多少次,以最少的移动次数作为移动策略的依据之一。

实施例具体为,本实施例的分布式文件系统中包含两组相同文件,一组为a相同文件,一组为b相同文件,因为不同组的相同文件在存储设备的存储数量不同所以具有不同的移动策略,所以要分开进行处理;分布式文件系统中包含a存储设备、b存储设备和c存储设备,a存储设备存储的a相同文件的个数为1个,b存储设备存储的a相同文件的个数为2个,c存储设备存储的a相同文件的个数为3个,首先,判断a存储设备、b存储设备和c存储设备的剩余容量大小,如果c存储设备的剩余容量大小大于a存储设备和b存储设备中包含的a相同文件的总大小(3个a相同文件的容量大小),即c存储设备的剩余容量大小还能存储3个a相同文件,那么c存储设备必然成为移动的目标设备,即指定移动存储设备,那么a存储设备和b存储设备中的a相同文件均移动到c存储设备中,从而尽可能的减少移动次数,如果c存储设备的剩余容量大小不够存储3个a相同文件,那么判断b存储设备的剩余容量大小是否大于a存储设备和c存储设备中包含的a相同文件的总大小(4个a相同文件的容量大小),如果大于,即b存储设备的剩余容量大小还能存储4个a相同文件,那么b存储设备必然成为移动的目标设备,即指定移动存储设备;如果小于,即b存储设备的剩余容量大小不够存储4个a相同文件,那么判断a存储设备的剩余容量大小是否大于b存储设备和c存储设备中包含的a相同文件的总大小(5个a相同文件的容量大小),如果大于,那么a存储设备必然成为移动的目标设备,即指定移动存储设备;如果小于,即分布式文件系统中所有的存储设备存储容量大小都不够执行移动策略的,那么可以采取先将a存储设备的a相同文件移动到c存储设备中,再进行去重操作,操作好后,再将b存储设备的a相同文件移动到c存储设备中,再进行去重操作;当然,一般情况下,是不会出现这样的情况的,分布式文件系统中至少有一个存储设备的存储容量大小满足移动策略要求的。

当a相同文件移动到指定移动存储设备内后,glusterfs层会将该指定移动存储设备上所有a相同文件下发给传统单机文件系统做去重处理,并且最终保证a相同文件的个数只有一份。a相同文件去重后,再进行b相同文件的去重,b相同文件的移动策略要根据a存储设备、b存储设备和c存储设备中所包含的b相同文件的个数进行确定,从而确定指定移动存储设备,最终减少移动次数。所以不同组的相同文件的移动策略不一定相同,指定移动存储设备也不一定相同,本实施例可以一组的相同文件去重完成后,再进行另一组相同文件的去重,也可以将多组相同文件同时进行去重操作。

本发明的保护范围包括但不限于以上实施方式,本发明的保护范围以权利要求书为准,任何对本技术做出的本领域的技术人员容易想到的替换、变形、改进均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1