CN108563649A - 基于GlusterFS分布式文件系统的离线去重方法 - Google Patents
基于GlusterFS分布式文件系统的离线去重方法 Download PDFInfo
- Publication number
- CN108563649A CN108563649A CN201711317259.9A CN201711317259A CN108563649A CN 108563649 A CN108563649 A CN 108563649A CN 201711317259 A CN201711317259 A CN 201711317259A CN 108563649 A CN108563649 A CN 108563649A
- Authority
- CN
- China
- Prior art keywords
- storage device
- file
- distributed file
- size
- file system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于GlusterFS分布式文件系统的离线去重方法,包括:计算所有文件的哈希值;将文件的大小和该文件的哈希值作为Key值,建立哈希树;择一组大小相同且哈希值相同的多个文件并标记为相同文件;根据分布式文件系统中每个存储设备的剩余容量大小和每个存储设备中存储的相同文件的个数从分布式文件系统中选择一个存储设备并将该存储设备标记为指定移动存储设备;将分布式文件系统中的存储设备中存储的相同文件均移动到指定移动存储设备中;采用文件去重方法从指定移动存储设备中删除相同文件,保证相同文件只有一份;本发明有效地解决了分布式存储中可能存在的大量重复数据的问题,大大提升了分布式存储系统的存储能力。
Description
技术领域
本发明属于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相同文件的个数进行确定,从而确定指定移动存储设备,最终减少移动次数。所以不同组的相同文件的移动策略不一定相同, 指定移动存储设备也不一定相同,本实施例可以一组的相同文件去重完成后,再进行另一组相同文件的去重,也可以将多组相同文件同时进行去重操作。
本发明的保护范围包括但不限于以上实施方式,本发明的保护范围以权利要求书为准,任何对本技术做出的本领域的技术人员容易想到的替换、变形、改进均落入本发明的保护范围。
Claims (3)
1.一种基于GlusterFS分布式文件系统的离线去重方法,其特征在于:包括以下步骤:
步骤1::遍历分布式文件系统中的所有的文件,采用哈希算法计算出所有文件的哈希值;
步骤2:将文件的大小和哈希值作为Key值,建立哈希树;
步骤3:判断分布式文件系统中是否存在大小相同且哈希值相同的多个文件,如果存在,选择一组大小相同且哈希值相同的多个文件并将该多个文件均标记为相同文件,将所述相同文件添加到相同文件所对应的节点指向的链表中;
步骤4:根据分布式文件系统中每个存储设备的剩余容量大小和每个存储设备中存储的所述相同文件的个数从分布式文件系统中选择一个存储设备并将该存储设备标记为指定移动存储设备;
步骤5:将分布式文件系统中的存储设备中存储的所述相同文件均移动到指定移动存储设备中;
步骤6:采用文件去重方法从指定移动存储设备中删除所述相同文件,保证所述相同文件只有一份,返回执行步骤3,直到将分布式文件系统包含的所有组合的相同文件均进行去重操作,结束。
2.根据权利要求1所述的基于GlusterFS分布式文件系统的离线去重方法,其特征在于:所述的步骤4包括以下步骤:
(1)读取分布式文件系统中每个存储设备的剩余容量大小,并判断分布式文件系统中每个存储设备中存储的所述相同文件的个数;
(2)将每个存储设备按照存储的所述相同文件的个数大小进行降序排列,即将存储的所述相同文件的个数最多的存储设备排在第一位,将排在第一位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,若大于,则将待确定移动存储设备标记为指定移动存储设备,否则,执行步骤(3);
(3)将排在第二位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的相同文件的总大小,若大于,则将该待确定移动存储设备标记为指定移动存储设备,否则,将排在第三位的存储设备标记为待确定移动存储设备,按照上面的顺序进行判断直到选取一个排位在前面的存储设备且该存储设备的剩余容量大小大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,选取的存储设备即为指定移动存储设备。
3.根据权利要求1或2所述的基于GlusterFS分布式文件系统的离线去重方法,其特征在于:所述相同文件包括相同的设备文件和相同的链接文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711317259.9A CN108563649B (zh) | 2017-12-12 | 2017-12-12 | 基于GlusterFS分布式文件系统的离线去重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711317259.9A CN108563649B (zh) | 2017-12-12 | 2017-12-12 | 基于GlusterFS分布式文件系统的离线去重方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563649A true CN108563649A (zh) | 2018-09-21 |
CN108563649B CN108563649B (zh) | 2021-12-07 |
Family
ID=63529525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711317259.9A Active CN108563649B (zh) | 2017-12-12 | 2017-12-12 | 基于GlusterFS分布式文件系统的离线去重方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563649B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110191187A (zh) * | 2019-06-04 | 2019-08-30 | 湖北五五互联科技有限公司 | Cdn服务器数据管理方法、设备及计算机可读存储介质 |
CN112749136A (zh) * | 2021-01-21 | 2021-05-04 | 北京明略昭辉科技有限公司 | 一种基于GlusterFS的文件存储方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079034A (zh) * | 2006-07-10 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 消除文件存储系统中冗余文件的系统及方法 |
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102646130A (zh) * | 2012-03-12 | 2012-08-22 | 华中科技大学 | 一种海量历史数据的存储及索引方法 |
CN102834803A (zh) * | 2009-11-23 | 2012-12-19 | 皮斯佩斯有限公司 | 在分布式存储系统中去除文件的重复的装置及方法 |
US20120330904A1 (en) * | 2011-06-27 | 2012-12-27 | International Business Machines Corporation | Efficient file system object-based deduplication |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN103873506A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 存储集群中的数据块去重系统及方法 |
CN104142968A (zh) * | 2013-11-19 | 2014-11-12 | 东南大学 | 一种基于solr技术的分布式搜索方法及系统 |
CN104408111A (zh) * | 2014-11-24 | 2015-03-11 | 浙江宇视科技有限公司 | 一种删除重复数据的方法及装置 |
CN105912622A (zh) * | 2016-04-05 | 2016-08-31 | 重庆大学 | 一种针对无损压缩文件的数据去重方法 |
CN106649676A (zh) * | 2016-12-15 | 2017-05-10 | 北京锐安科技有限公司 | 一种基于hdfs存储文件的去重方法及装置 |
US20170249199A1 (en) * | 2016-02-26 | 2017-08-31 | Red Hat, Inc. | Correlation-Based Monitoring and Events for a Unified Storage Manager |
-
2017
- 2017-12-12 CN CN201711317259.9A patent/CN108563649B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079034A (zh) * | 2006-07-10 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 消除文件存储系统中冗余文件的系统及方法 |
CN102834803A (zh) * | 2009-11-23 | 2012-12-19 | 皮斯佩斯有限公司 | 在分布式存储系统中去除文件的重复的装置及方法 |
US20120330904A1 (en) * | 2011-06-27 | 2012-12-27 | International Business Machines Corporation | Efficient file system object-based deduplication |
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102646130A (zh) * | 2012-03-12 | 2012-08-22 | 华中科技大学 | 一种海量历史数据的存储及索引方法 |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN103873506A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 存储集群中的数据块去重系统及方法 |
CN104142968A (zh) * | 2013-11-19 | 2014-11-12 | 东南大学 | 一种基于solr技术的分布式搜索方法及系统 |
CN104408111A (zh) * | 2014-11-24 | 2015-03-11 | 浙江宇视科技有限公司 | 一种删除重复数据的方法及装置 |
US20170249199A1 (en) * | 2016-02-26 | 2017-08-31 | Red Hat, Inc. | Correlation-Based Monitoring and Events for a Unified Storage Manager |
CN105912622A (zh) * | 2016-04-05 | 2016-08-31 | 重庆大学 | 一种针对无损压缩文件的数据去重方法 |
CN106649676A (zh) * | 2016-12-15 | 2017-05-10 | 北京锐安科技有限公司 | 一种基于hdfs存储文件的去重方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘爱贵: "重复数据删除(De-duplication)技术研究", 《CSDN》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110191187A (zh) * | 2019-06-04 | 2019-08-30 | 湖北五五互联科技有限公司 | Cdn服务器数据管理方法、设备及计算机可读存储介质 |
CN112749136A (zh) * | 2021-01-21 | 2021-05-04 | 北京明略昭辉科技有限公司 | 一种基于GlusterFS的文件存储方法及系统 |
CN112749136B (zh) * | 2021-01-21 | 2024-04-19 | 北京明略昭辉科技有限公司 | 一种基于GlusterFS的文件存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108563649B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630955B (zh) | 一种高效动态的数据集合成员管理方法 | |
CN104023088B (zh) | 一种应用于分布式文件系统的存储服务器选择方法 | |
CN102985909B (zh) | 为良好分格的对象提供高扩展性网络存储的方法和设备 | |
CN106446001B (zh) | 一种在计算机存储介质上存储文件的方法及系统 | |
CN103929454B (zh) | 一种云计算平台中负载均衡存储的方法和系统 | |
CN103136114B (zh) | 存储方法及存储装置 | |
CN101996217B (zh) | 一种存储数据的方法及其存储设备 | |
CN103714013B (zh) | 一种文件系统的存储空间的配置方法及装置 | |
CN102546782A (zh) | 一种分布式系统及其数据操作方法 | |
CN105100146A (zh) | 数据存储方法、装置及系统 | |
CN102609446B (zh) | 一种分布式Bloom过滤系统及其使用方法 | |
CN104778222B (zh) | 基于usb存储设备的媒体库建立及更新方法 | |
CN102902762B (zh) | 一种删除重复数据的方法、装置和系统 | |
CN106445413A (zh) | 集群系统中数据处理方法及装置 | |
CN106201771A (zh) | 数据存储系统和数据读写方法 | |
CN101909068A (zh) | 一种文件副本管理方法及装置、系统 | |
CN108563649A (zh) | 基于GlusterFS分布式文件系统的离线去重方法 | |
CN105404679A (zh) | 数据处理方法和装置 | |
CN104111924A (zh) | 一种数据库系统 | |
CN103473337A (zh) | 一种分布式存储系统中处理面向海量目录和文件的方法 | |
CN104461706B (zh) | 一种将共享全局变量共享的方法和多处理装置 | |
CN107632789A (zh) | 基于分布式存储的重删方法、系统及数据重复检测方法 | |
CN106980680A (zh) | 数据存储方法及存储设备 | |
CN102646133B (zh) | 基于元数据存储的二维表组织方法 | |
CN108132759A (zh) | 一种文件系统中管理数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |