CN108563649B - 基于GlusterFS分布式文件系统的离线去重方法 - Google Patents

基于GlusterFS分布式文件系统的离线去重方法 Download PDF

Info

Publication number
CN108563649B
CN108563649B CN201711317259.9A CN201711317259A CN108563649B CN 108563649 B CN108563649 B CN 108563649B CN 201711317259 A CN201711317259 A CN 201711317259A CN 108563649 B CN108563649 B CN 108563649B
Authority
CN
China
Prior art keywords
storage device
same
file system
files
distributed file
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.)
Active
Application number
CN201711317259.9A
Other languages
English (en)
Other versions
CN108563649A (zh
Inventor
庄鹏盛
李丹
王凯
张冠枭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Fujitsu Nanda Software Technology Co Ltd
Original Assignee
Nanjing Fujitsu Nanda Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Fujitsu Nanda Software Technology Co Ltd filed Critical Nanjing Fujitsu Nanda Software Technology Co Ltd
Priority to CN201711317259.9A priority Critical patent/CN108563649B/zh
Publication of CN108563649A publication Critical patent/CN108563649A/zh
Application granted granted Critical
Publication of CN108563649B publication Critical patent/CN108563649B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于GlusterFS分布式文件系统的离线去重方法,包括:计算所有文件的哈希值;将文件的大小和该文件的哈希值作为Key值,建立哈希树;择一组大小相同且哈希值相同的多个文件并标记为相同文件;根据分布式文件系统中每个存储设备的剩余容量大小和每个存储设备中存储的相同文件的个数从分布式文件系统中选择一个存储设备并将该存储设备标记为指定移动存储设备;将分布式文件系统中的存储设备中存储的相同文件均移动到指定移动存储设备中;采用文件去重方法从指定移动存储设备中删除相同文件,保证相同文件只有一份;本发明有效地解决了分布式存储中可能存在的大量重复数据的问题,大大提升了分布式存储系统的存储能力。

Description

基于GlusterFS分布式文件系统的离线去重方法
技术领域
本发明属于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 (2)

1.一种基于GlusterFS分布式文件系统的离线去重方法,其特征在于:包括以下步骤:
步骤1:遍历分布式文件系统中的所有的文件,采用哈希算法计算出所有文件的哈希值;
步骤2:将文件的大小和哈希值作为Key值,建立哈希树;
步骤3:判断分布式文件系统中是否存在大小相同且哈希值相同的多个文件,如果存在,选择一组大小相同且哈希值相同的多个文件并将该多个文件均标记为相同文件,将所述相同文件添加到相同文件所对应的节点指向的链表中;
步骤4:根据分布式文件系统中每个存储设备的剩余容量大小和每个存储设备中存储的所述相同文件的个数从分布式文件系统中选择一个存储设备并将该存储设备标记为指定移动存储设备,具体包括以下步骤:
(1)读取分布式文件系统中每个存储设备的剩余容量大小,并判断分布式文件系统中每个存储设备中存储的所述相同文件的个数;
(2)将每个存储设备按照存储的所述相同文件的个数大小进行降序排列,即将存储的所述相同文件的个数最多的存储设备排在第一位,将排在第一位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,若大于,则将待确定移动存储设备标记为指定移动存储设备,否则,执行步骤(3);
(3)将排在第二位的存储设备标记为待确定移动存储设备,判断该待确定移动存储设备的剩余容量大小是否大于分布式文件系统中的其他存储设备中存储的相同文件的总大小,若大于,则将该待确定移动存储设备标记为指定移动存储设备,否则,将排在第三位的存储设备标记为待确定移动存储设备,按照上面的顺序进行判断直到选取一个排位在前面的存储设备且该存储设备的剩余容量大小大于分布式文件系统中的其他存储设备中存储的所述相同文件的总大小,选取的存储设备即为指定移动存储设备;
步骤5:将分布式文件系统中的存储设备中存储的所述相同文件均移动到指定移动存储设备中;
步骤6:采用文件去重方法从指定移动存储设备中删除所述相同文件,保证所述相同文件只有一份,返回执行步骤3,直到将分布式文件系统包含的所有组合的相同文件均进行去重操作,结束。
2.根据权利要求1所述的基于GlusterFS分布式文件系统的离线去重方法,其特征在于,所述相同文件包括相同的设备文件和相同的链接文件。
CN201711317259.9A 2017-12-12 2017-12-12 基于GlusterFS分布式文件系统的离线去重方法 Active CN108563649B (zh)

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 CN108563649A (zh) 2018-09-21
CN108563649B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110191187A (zh) * 2019-06-04 2019-08-30 湖北五五互联科技有限公司 Cdn服务器数据管理方法、设备及计算机可读存储介质
CN112749136B (zh) * 2021-01-21 2024-04-19 北京明略昭辉科技有限公司 一种基于GlusterFS的文件存储方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
CN102323958A (zh) * 2011-10-27 2012-01-18 上海文广互动电视有限公司 重复数据删除方法
CN102834803A (zh) * 2009-11-23 2012-12-19 皮斯佩斯有限公司 在分布式存储系统中去除文件的重复的装置及方法
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 重庆大学 一种针对无损压缩文件的数据去重方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706703B2 (en) * 2011-06-27 2014-04-22 International Business Machines Corporation Efficient file system object-based deduplication
CN102646130B (zh) * 2012-03-12 2013-08-14 华中科技大学 一种海量历史数据的存储及索引方法
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
US10241854B2 (en) * 2016-02-26 2019-03-26 Red Hat, Inc. Correlation-based monitoring and events for a unified storage manager
CN106649676B (zh) * 2016-12-15 2020-06-19 北京锐安科技有限公司 一种基于hdfs存储文件的去重方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
CN102834803A (zh) * 2009-11-23 2012-12-19 皮斯佩斯有限公司 在分布式存储系统中去除文件的重复的装置及方法
CN102323958A (zh) * 2011-10-27 2012-01-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 重庆大学 一种针对无损压缩文件的数据去重方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
重复数据删除(De-duplication)技术研究;刘爱贵;《CSDN》;20100821;第1-7页 *

Also Published As

Publication number Publication date
CN108563649A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
US11314701B2 (en) Resharding method and system for a distributed storage system
CN107102819B (zh) 向固态硬盘写入数据的方法及设备
CN103136114B (zh) 存储方法及存储装置
US8893131B2 (en) System and/or method for bulk loading of records into an ordered distributed database
CN103020255B (zh) 分级存储方法和装置
CN103189867A (zh) 重复数据检索方法及设备
CN103067525B (zh) 一种基于特征码的云存储数据备份方法
CN103858125B (zh) 重复数据处理方法、装置及存储控制器和存储节点
CN103581331B (zh) 虚拟机在线迁移方法与系统
CN110445822B (zh) 一种对象存储方法及装置
CN104077423A (zh) 一种基于一致性散列的结构化数据存储、查询和迁移方法
CN102902762B (zh) 一种删除重复数据的方法、装置和系统
CN108563649B (zh) 基于GlusterFS分布式文件系统的离线去重方法
CN103502957A (zh) 数据处理方法及装置
CN103929454A (zh) 一种云计算平台中负载均衡存储的方法和系统
CN107632789A (zh) 基于分布式存储的重删方法、系统及数据重复检测方法
CN107391774A (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN102508902A (zh) 云存储系统中可变分块大小的块数据分块方法
CN106980680A (zh) 数据存储方法及存储设备
CN103220308A (zh) 一种文件下载方法、装置及系统
CN103530322B (zh) 数据处理方法和装置
CN107391761A (zh) 一种基于重复数据删除技术的数据管理方法及装置
CN106648991A (zh) 数据容灾系统中的重复数据删除方法
CN106201354A (zh) 数据存储方法及系统
CN106682021A (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