CN105468686A - 减少冗余数据的方法及装置 - Google Patents

减少冗余数据的方法及装置 Download PDF

Info

Publication number
CN105468686A
CN105468686A CN201510789116.2A CN201510789116A CN105468686A CN 105468686 A CN105468686 A CN 105468686A CN 201510789116 A CN201510789116 A CN 201510789116A CN 105468686 A CN105468686 A CN 105468686A
Authority
CN
China
Prior art keywords
file
files
hard disk
hard link
hard
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.)
Pending
Application number
CN201510789116.2A
Other languages
English (en)
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.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510789116.2A priority Critical patent/CN105468686A/zh
Publication of CN105468686A publication Critical patent/CN105468686A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种减少冗余数据的方法及装置,其中的方法包括:对硬盘中各个分区的所有文件进行遍历;判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;通过创建硬链接,将两个及以上相同的文件合并为一个文件。通过本发明,利用创建硬链接将重复的文件合并为一个文件,可减少硬盘中的冗余数据,节省硬盘空间并提高硬盘运行效率。

Description

减少冗余数据的方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种减少冗余数据的方法及装置。
背景技术
通常情况下,大多数用户仅了解如何在硬盘等存储装置中继续保留文件,却不知如何更好地对存储装置进行维护,以有效地监控其硬盘的容量。某些情况下,具有存储装置的***会借助一些软件应用程序执行文件的查找、获取及其编辑或者文件删除等维护管理操作,传统的硬盘文件保存是根据目录逐个保存文件,这种方式存在一些弊端:首先,若某个硬盘有大量重复文件时,这种保存方式往往占用较大的存储空间;其次,当备份硬盘中的文件时,若硬盘中保存有大量重复文件,***将花费较多的时间备份这些重复文件,导致备份时间增加;最后,当硬盘中的文件容量较大时,如果用户希望从硬盘中清除这些重复的文件,则不得不逐个检查文件,非常繁琐。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的减少冗余数据的方法,从而提高硬盘运行效率。
依据本发明的一个方面,提供一种减少冗余数据的方法,包括:对硬盘中各个分区的所有文件进行遍历;判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;通过创建硬链接,将两个及以上相同的文件合并为一个文件。
优选的,在所述判断所述硬盘中是否包括两个及以上相同的文件之前,还包括:从遍历的文件中排除用户级文件;所述判断所述硬盘中是否包括两个及以上相同的文件,包括:从非用户级文件中进行判断是否包括两个及以上相同的文件。
优选的,所述从遍历的文件中排除用户级文件,判断所述硬盘中是否包括两个及以上相同的文件,包括:预先选定特定类型的文件,仅针对所述特定类型的文件进行判断是否包括两个及以上相同的文件;和/或,根据文件的修改和/或创建日期排除预置时间段内最新产生的文件,在排除最新产生的文件之外进行判断是否包括两个及以上相同的文件。
优选的,所述特定类型的文件包括exe文件和/或dll文件。
优选的,所述两个及以上文件的校验值是指两个及以上文件的哈西值,在根据两个及以上文件哈西值确定两个及以上文件是否相同之后,还包括:对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;根据完整数据比较结果,最终确定两个及以上文件是否相同。
优选的,所述通过创建硬链接,将两个及以上相同的文件合并为一个文件,包括:在NTFS文件***中,通过CreateHardLink指令,将两个及以上相同文件以硬链接方式合并为一个文件。
一种减少冗余数据的装置,包括:遍历单元,用于对硬盘中各个分区的所有文件进行遍历;判断单元,用于判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;硬链接合并单元,用于通过创建硬链接,将两个及以上相同的文件合并为一个文件。
优选的,所述装置还包括:用户级文件排除单元,用于从遍历的文件中排除用户级文件;所述判断单元具体用于,从非用户级文件中进行判断是否包括两个及以上相同的文件。
优选的,所述用户级文件排除单元具体用于,预先选定特定类型的文件,排除非特定类型的文件,和/或,根据文件的修改和/或创建日期排除预置时间段内最新产生的文件。
优选的,所述特定类型的文件包括exe文件和/或dll文件。
优选的,所述判断单元具体用于,根据两个及以上文件的哈西值确定两个及以上文件是否相同;所述判断单元还用于,对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;根据完整数据比较结果,最终确定两个及以上文件是否相同。
优选的,所述硬链接合并单元具体用于,在NTFS文件***中,通过CreateHardLink指令,将两个及以上相同文件以硬链接方式合并为一个文件。
一种基于减少冗余数据的文件管理方法,包括:对硬盘中各个分区的所有文件进行遍历;判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;通过创建硬链接,将两个及以上相同的文件合并为一个文件;维护所述硬链接文件与一个或多个文件名的硬链接对应关系,在针对所述一个或多个文件名对所述硬链接文件进行更新、删除和/或修改时,通过维护所述硬链接对应关系,统一对所述硬链接文件进行所述更新、删除和/或修改的操作。
优选的,所述硬链接对应关系中包括文件链接数,所述文件链接数对应于所述一个或多个文件名的数量;在针对一个或多个文件名之一进行删除时,将所述文件链接数减一,直到所述文件链接数为零时,才对所述硬链接文件进行删除。
优选的,在对硬链接文件进行更新时,将待更新文件的硬链接关系修改为更新后文件的硬链接关系。
优选的在针对一个或多个文件名之一进行文件修改时,统一对所述硬链接文件进行修改。
可见,上述方案通过硬链接将重复的文件合并为一个文件,可减少硬盘中的冗余数据,节省硬盘空间并提高硬盘运行效率。在本发明的一个优选实施例中,通过排除用户级文件,可提高文件判断的速度,并且跳过这些用户级的特定文件,可以避免产生兼容性问题。在本发明的另一个优选实施例中,通过完整数据比较确定文件是否相同,更为准确,降低误判的几率。
另外,本发明可至少带来以下几个方面的优点:(1)节省硬盘空间。同样的文件,只需要维护硬链接关系,不需要进行多重的拷贝,这样可以节省硬盘空间。(2)重命名文件。重命名文件并不需要打开该文件,只需改动某个目录项的内容即可。(3)删除文件。删除文件只需将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时***才把真正的文件从磁盘上删除。(4)文件更新。如果涉及文件更新,例如在Windows***下,只需要先在WinSxS目录里面下载好一个新版本,然后修改Windows\System32下面同名文件的硬链接关系,从旧版本的硬链接指向新版本的硬链接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度会明显提高。(5)卸载补丁。遇到需要补丁卸载的情况,只需要把硬链接指向改为旧版本即可,没有文件替换的问题。而且建立了硬链接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的减少冗余数据的方法流程图;
图2示出了根据本发明另一个实施例的减少冗余数据的方法流程图;
图3a-3b示出了根据本发明一个实施例的减少冗余数据的方法中文件硬链接示意图;
图4示出了根据本发明一个实施例的减少冗余数据的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
硬盘中往往存在这这样的情况,二个文件内容完全一致,但是却分散在不同的位置。比如360网盘跟360卫士其实很多文件都是共同的,这就导致硬盘存放了大量重复文件,降低了硬盘的可用率,造成了极大的浪费。
本领域技术人员了解,NTFS(NewTechnologyFileSystem,新技术文件***),是WindowsNT环境的文件***。新技术文件***是WindowsNT家族(如,Windows2000、WindowsXP、WindowsVista、Windows7和windows8.1)等的限制级专用的文件***(操作***所在的盘符的文件***必须格式化为NTFS的文件***,4096簇环境下)。NTFS取代了老式的FAT文件***。NTFS对FAT和HPFS作了若干改进,例如,支持元数据,并且使用了高级数据结构,以便于改善性能、可靠性和磁盘空间利用率,并提供了若干附加扩展功能。
硬链接是NTFS文件***的一种服务。所谓硬链接(hardlink),就是一个文件具有一个或多个文件名。硬链接就像是给一个文件创建了一个影子,而且影子和本体是同步的。硬链接应用场景其中之一就是当某个硬盘分区容量不足时,但为了分类,使用其他分区的容量,但显示在目标分区。
因此,本申请创新性提出,对于硬盘中重复的文件,采取硬链接方式合并为一个文件。那么,为了实现对重复文件的硬链接,首先需要判断哪些文件是重复的,即,存在哪些相同的文件,因此,需要判断硬盘中哪些文件相同。在确定了重复文件的前提下,可将这些重复的文件采用硬链接方式,合并为一个文件,从而减少对硬盘空间的占用,提高硬盘的运行效率。
参见图1,示出了根据本发明一个实施例的减少冗余数据的方法流程,该方法包括以下步骤:
S101:对硬盘中各个分区的所有文件进行遍历。
对于文件遍历,可以采取目前比较流行的文件遍历算法实现,当然也可以采取未来提出的文件遍历算法。目前的文件遍历算法,主要包括深度优先算法和广度优先算法。具体实现的时候,每种算法都可以有多种实现,一般来说,有递归和非递归两种。
对于具体文件***,可以采取***自带函数进行文件遍历。例如,对于Windows的NTFS文件***,可以利用WindowsAPI函数实现文件遍历。具体的,使用WindowsAPI函数遍历指定分区、目录的所有文件。其思路是:调出浏览文件夹窗口指定所要搜索的起始路径,然后用查找文件的API函数遍历该目录下及其包含的子目录下的所有文件。
S102:判断硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识(ID)不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同。
判断硬盘中是否包括两个及以上数量相同的文件,即查找出重复的文件,这是执行硬链接合并的先决条件。判断硬盘中是否包含两个及以上相同的文件时,可通过以下步骤实现:
第一步:要确定两个及以上文件的大小是否相同,如果大小不同,则确定不是相同的文件,如果大小相同,则继续执行第二步。对于如何确定两个及以上文件的大小是否相同,例如,可在WindowsAPI函数进行文件遍历时通过读取文件属性信息确定文件大小,从而比较两个及以上文件的大小是否相同。
第二步:判断两个及以上文件的ID是否相同,因为在硬盘的文件***中,每个文件都具有唯一的ID,那么,对于两个互相独立的但是内容实质相同的文件,它们的ID也是不同的,因此,此处第二步中需筛选出文件ID不同的文件,继续执行第三步。对于如何确定两个及以上文件ID是否相同,例如,可以调用GetFileInformationByHandleAPI,获取文件属性信息,从而对比文件唯一ID来实现。
第三步:计算两个及以上文件的校验值(例如,哈希值、MD5值,等),例如,如果两个及以上文件的哈西值相同,则可确定这两个及以上文件是相同的文件。对于如何获取两个及以上文件哈西值,可以使用Crypt系列API计算得到。Windows提供了CryptoAPI,使用这些API,可以比较轻松的实现Hash。
S103:通过创建硬链接,将两个及以上相同的文件合并为一个文件。
NTFS文件***中支持硬链接机制,可以使得物理文件只存在一份,并可以拥有多个引用路径,形式与快捷方式有些相似。当所有的引用被删除后,才真正被删除。具体实现时,可以使用CreateHardLink创建硬链接,顶替以前的文件,从而节省存储空间。关于创建硬链接的具体细节可参考现有技术,此处不赘述。
可见,上述方案中,通过硬链接将重复的文件合并为一个文件,可减少硬盘中的冗余数据,节省硬盘空间并提高硬盘运行效率。
参见图2,示出了根据本发明另一个实施例的减少冗余数据的方法流程图。相比于图1所示实施例,本实施例主要区别在于:(1)在确定重复文件时,首先排除用户级文件,即仅在非用户级文件中进行文件是否相同的判断;(2)在根据哈西值确定文件相同之后,进一步进行文件的完整数据比较,最终根据完整数据比较结果确定文件是否相同。
图2包括以下步骤:
S201:对硬盘中各个分区的所有文件进行遍历。
对于文件遍历,可以采取目前比较流行的文件遍历算法实现,当然也可以采取未来提出的文件遍历算法。目前的文件遍历算法,主要包括深度优先算法和广度优先算法。具体实现的时候,每种算法都可以有多种实现,一般来说,有递归和非递归两种。
对于具体文件***,可以采取***自带函数进行文件遍历。例如,对于Windows的NTFS文件***,可以利用WindowsAPI函数实现文件遍历。具体的,使用WindowsAPI函数遍历指定分区、目录的所有文件。其思路是:调出浏览文件夹窗口指定所要搜索的起始路径,然后用查找文件的API函数遍历该目录下及其包含的子目录下的所有文件。
S202:从遍历的文件中排除用户级文件。
为了避免产生兼容性文件,需要跳过特定的用户级文件,而仅对非用户级文件进行后续的是否重复判断以及硬链接合并的操作。所谓的用户级文件,是指用户可能进行操作的文件,例如,用户可能进行创建、修改、删除等操作的文件,例如,txt文件或word文件等。非用户级文件,则是用户基本不可能进行操作的文件,例如一些***文件,比如exe文件或者dll文件等。
具体实现时,可通过以下两种方式之一或组合来实现用户级文件的排除:
a)预先选定特定类型的文件,在文件遍历时,仅针对该特定类型的文件进行,例如,仅扫描指定后缀的文件,比如仅针对.exe、.dll类型的文件进行扫描。
b)根据文件的修改和/或创建日期排除预置时间段内最新产生的文件,在排除最新产生的文件之外进行判断是否包括两个及以上相同的文件。例如,通过WindowsAPI文件遍历函数进行文件遍历时获取文件属性信息,从而确定最新产生的文件,例如,确定最近1周时间内***作的文件为最新文件。
S203:在非用户级文件中判断硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、ID不同的前提下,根据两个及以上文件的校验值(例如,哈西值)初步确定两个及以上文件是否相同,并进一步通过文件完整数据比对最终确定两个及以上文件是否相同。
判断硬盘中是否包括两个及以上数量相同的文件,即查找出重复的文件,这是执行硬链接合并的先决条件。判断硬盘中是否包含两个及以上相同的文件时,可通过以下四个步骤实现:
第一步:要确定两个及以上文件的大小是否相同,如果大小不同,则确定不是相同的文件,如果大小相同,则继续执行第二步。对于如何确定两个及以上文件的大小是否相同,例如,可在WindowsAPI函数进行文件遍历时通过读取文件属性信息确定文件大小,从而比较两个及以上文件的大小是否相同。
第二步:判断两个及以上文件的ID是否相同,因为在硬盘的文件***中,每个文件都具有唯一的ID,那么,对于两个互相独立的但是内容实质相同的文件,它们的ID也是不同的,因此,此处第二步中需筛选出文件ID不同的文件,继续执行第三步。对于如何确定两个及以上文件ID是否相同,例如,可以调用GetFileInformationByHandleAPI,获取文件属性信息,从而对比文件唯一ID来实现。
第三步:计算两个及以上文件的哈希值,如果两个及以上文件的哈西值相同,则可确定这两个及以上文件是初步相同的文件。对于如何获取两个及以上文件哈西值,可以使用Crypt系列API计算得到。Windows提供了CryptoAPI,使用这些API,可以比较轻松的实现Hash。
第四步:对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;根据完整数据比较结果,最终确定两个及以上文件是否相同。
S204:通过创建硬链接,将两个及以上相同的文件合并为一个文件。
NTFS文件***中支持硬链接机制,可以使得物理文件只存在一份,并可以拥有多个引用路径,形式与快捷方式有些相似。当所有的引用被删除后,才真正被删除。具体实现时,可以使用CreateHardLink创建硬链接,顶替以前的文件,从而节省存储空间。
可见,图2对应的实施例相较于图1对应的实施例更优。通过排除用户级文件,可提高文件判断的速度,并且跳过这些用户级的特定文件,可以避免产生兼容性问题;通过完整数据比较确定文件是否相同,更为准确,降低误判的几率。当然,上述两点改进点可同时都执行,也可以仅执行一个改进点,本发明实施例对此不作限定。
如前所述,硬链接就像是给一个文件创建了一个影子,而且影子和本体是同步的。简言之,所谓链接无非是把文件名和计算机文件***使用的节点号链接起来。因此可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。一个文件有几个文件名(例如,采用ln命令实现多个文件名),就是指该文件的链接数为几。由定义可知,此链接数可以是1,这表明该文件只有一个文件名。总之,硬链接就是让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。
参考图3a,是采用本发明之前重复文件的存放结构示意图。其中,文件1和文件2具有实质相同的数据,文件1存放在C:\windows\11.dat;文件2存放在C:\user\245.dat,这对于硬盘而言,在两个地方存放了数据相同的两个文件,造成了存储空间的浪费。参考图3b,是根据本发明一个实施例的减少冗余数据的方法中文件硬链接示意图。图3b中,文件1及文件2合并为一个文件,其数据通过映射的方式,映射到C:\windows\11.dat和C:\user\245.dat两个目录下,而实际的数据仅保存一份,从而节省硬盘存储空间。
本发明图1或图2提供的减少冗余数据的方法,可具体应用到文件管理中。因此,本发明还提供一种基于减少冗余数据的文件管理方法,该方法包括以下步骤:
步骤1:对硬盘中各个分区的所有文件进行遍历;
步骤2:判断硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
步骤3:通过创建硬链接,将两个及以上相同的文件合并为一个文件;
步骤4:维护所述硬链接文件与一个或多个文件名的硬链接对应关系,在针对一个或多个文件名对硬链接文件进行更新、删除和/或修改时,通过维护硬链接对应关系,统一对硬链接文件进行更新、删除和/或修改的操作。
如前描述的,硬链接对应关系中包括文件链接数,该文件链接数对应于一个或多个文件名的数量;那么,在针对一个或多个文件名之一进行删除时,将文件链接数减一,直到文件链接数为零时,才对硬链接文件进行删除。在对硬链接文件进行更新时,将待更新文件的硬链接关系修改为更新后文件的硬链接关系。在针对一个或多个文件名之一进行文件修改时,统一对硬链接文件进行修改。
可见,本发明还至少带来以下几个方面的优点:
(1)节省硬盘空间。同样的文件,只需要维护硬链接关系,不需要进行多重的拷贝,这样可以节省硬盘空间.
(2)重命名文件。重命名文件并不需要打开该文件,只需改动某个目录项的内容即可。
(3)删除文件。删除文件只需将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时***才把真正的文件从磁盘上删除。
(4)文件更新。如果涉及文件更新,例如在Windows***下,只需要先在WinSxS目录里面下载好一个新版本,然后修改Windows\System32下面同名文件的硬链接关系,从旧版本的硬链接指向新版本的硬链接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度会明显提高。
(5)卸载补丁。遇到需要补丁卸载的情况,只需要把硬链接指向改为旧版本即可,没有文件替换的问题。而且建立了硬链接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改。
与上述方法实施例相对应,本发明还提供一种减少冗余数据的装置。该装置可以是软件、硬件或软硬件结合实现,其功能是实现上述方法实施例。
参见图4,为本发明实施例的减少冗余数据的装置结构示意图。该装置包括如下单元:
遍历单元401,用于对硬盘中各个分区的所有文件进行遍历;
判断单元402,用于判断硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、ID不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
硬链接合并单元403,用于通过创建硬链接,将两个及以上相同的文件合并为一个文件。
优选的,该装置还包括:用户级文件排除单元404,用于从遍历的文件中排除用户级文件;判断单元402具体用于,从非用户级文件中进行判断是否包括两个及以上相同的文件。
优选的,用户级文件排除单元404具体用于,预先选定特定类型的文件,排除非特定类型的文件,和/或,根据文件的修改和/或创建日期排除预置时间段内最新产生的文件。
优选的,特定类型的文件包括exe文件和/或dll文件。
优选的,判断单元402具体用于,根据两个及以上文件的哈西值确定两个及以上文件是否相同;判断单元402还用于,对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;根据完整数据比较结果,最终确定两个及以上文件是否相同。
优选的,硬链接合并单元403具体用于,在NTFS文件***中,通过CreateHardLink指令,将两个及以上相同文件以硬链接方式合并为一个文件。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的减少冗余数据的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
如前所述,本发明提供至少如下的方案:
A1、一种减少冗余数据的方法,包括:
对硬盘中各个分区的所有文件进行遍历;
判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
通过创建硬链接,将两个及以上相同的文件合并为一个文件。
A2、如A1所述的方法,在所述判断所述硬盘中是否包括两个及以上相同的文件之前,还包括:从遍历的文件中排除用户级文件;
所述判断所述硬盘中是否包括两个及以上相同的文件,包括:从非用户级文件中进行判断是否包括两个及以上相同的文件。
A3、如A2所述的方法,所述从遍历的文件中排除用户级文件,判断所述硬盘中是否包括两个及以上相同的文件,包括:
预先选定特定类型的文件,仅针对所述特定类型的文件进行判断是否包括两个及以上相同的文件;和/或,
根据文件的修改和/或创建日期排除预置时间段内最新产生的文件,在排除最新产生的文件之外进行判断是否包括两个及以上相同的文件。
A4、如A3所述的方法,所述特定类型的文件包括exe文件和/或dll文件。
A5、如A1所述的方法,所述两个及以上文件的校验值是指两个及以上文件的哈西值,在根据两个及以上文件哈西值确定两个及以上文件是否相同之后,还包括:
对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;
根据完整数据比较结果,最终确定两个及以上文件是否相同。
A6、如A1所述的方法,所述通过创建硬链接,将两个及以上相同的文件合并为一个文件,包括:
在NTFS文件***中,通过CreateHardLink指令,将两个及以上相同文件以硬链接方式合并为一个文件。
B7、一种减少冗余数据的装置,包括:
遍历单元,用于对硬盘中各个分区的所有文件进行遍历;
判断单元,用于判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
硬链接合并单元,用于通过创建硬链接,将两个及以上相同的文件合并为一个文件。
B8、如B7所述的装置,还包括:用户级文件排除单元,用于从遍历的文件中排除用户级文件;
所述判断单元具体用于,从非用户级文件中进行判断是否包括两个及以上相同的文件。
B9、如B8所述的装置,所述用户级文件排除单元具体用于,预先选定特定类型的文件,排除非特定类型的文件,和/或,根据文件的修改和/或创建日期排除预置时间段内最新产生的文件。
B10、如B9所述的装置,所述特定类型的文件包括exe文件和/或dll文件。
B11、如B7所述的装置,所述判断单元具体用于,根据两个及以上文件的哈西值确定两个及以上文件是否相同;所述判断单元还用于,对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;根据完整数据比较结果,最终确定两个及以上文件是否相同。
B12、如B7所述的装置,所述硬链接合并单元具体用于,在NTFS文件***中,通过CreateHardLink指令,将两个及以上相同文件以硬链接方式合并为一个文件。
C13、一种基于减少冗余数据的文件管理方法,包括:
对硬盘中各个分区的所有文件进行遍历;
判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
通过创建硬链接,将两个及以上相同的文件合并为一个文件;
维护所述硬链接文件与一个或多个文件名的硬链接对应关系,在针对所述一个或多个文件名对所述硬链接文件进行更新、删除和/或修改时,通过维护所述硬链接对应关系,统一对所述硬链接文件进行所述更新、删除和/或修改的操作。
C14、如C13所述的方法,所述硬链接对应关系中包括文件链接数,所述文件链接数对应于所述一个或多个文件名的数量;在针对一个或多个文件名之一进行删除时,将所述文件链接数减一,直到所述文件链接数为零时,才对所述硬链接文件进行删除。
C15、如C13所述的方法,在对硬链接文件进行更新时,将待更新文件的硬链接关系修改为更新后文件的硬链接关系。
C16、如C13所述的方法,在针对一个或多个文件名之一进行文件修改时,统一对所述硬链接文件进行修改。

Claims (10)

1.一种减少冗余数据的方法,其特征在于,包括:
对硬盘中各个分区的所有文件进行遍历;
判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
通过创建硬链接,将两个及以上相同的文件合并为一个文件。
2.如权利要求1所述的方法,其特征在于,在所述判断所述硬盘中是否包括两个及以上相同的文件之前,还包括:从遍历的文件中排除用户级文件;
所述判断所述硬盘中是否包括两个及以上相同的文件,包括:从非用户级文件中进行判断是否包括两个及以上相同的文件。
3.如权利要求2所述的方法,其特征在于,所述从遍历的文件中排除用户级文件,判断所述硬盘中是否包括两个及以上相同的文件,包括:
预先选定特定类型的文件,仅针对所述特定类型的文件进行判断是否包括两个及以上相同的文件;和/或,
根据文件的修改和/或创建日期排除预置时间段内最新产生的文件,在排除最新产生的文件之外进行判断是否包括两个及以上相同的文件。
4.如权利要求3所述的方法,其特征在于,所述特定类型的文件包括exe文件和/或dll文件。
5.如权利要求1所述的方法,其特征在于,所述两个及以上文件的校验值是指两个及以上文件的哈西值,在根据两个及以上文件哈西值确定两个及以上文件是否相同之后,还包括:
对于哈西值相同的两个及以上文件,进一步将两个及以上文件的完整数据进行二进制比较;
根据完整数据比较结果,最终确定两个及以上文件是否相同。
6.如权利要求1所述的方法,其特征在于,所述通过创建硬链接,将两个及以上相同的文件合并为一个文件,包括:
在NTFS文件***中,通过CreateHardLink指令,将两个及以上相同文件以硬链接方式合并为一个文件。
7.一种减少冗余数据的装置,其特征在于,包括:
遍历单元,用于对硬盘中各个分区的所有文件进行遍历;
判断单元,用于判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
硬链接合并单元,用于通过创建硬链接,将两个及以上相同的文件合并为一个文件。
8.如权利要求7所述的装置,其特征在于,还包括:用户级文件排除单元,用于从遍历的文件中排除用户级文件;
所述判断单元具体用于,从非用户级文件中进行判断是否包括两个及以上相同的文件。
9.如权利要求8所述的装置,其特征在于,所述用户级文件排除单元具体用于,预先选定特定类型的文件,排除非特定类型的文件,和/或,根据文件的修改和/或创建日期排除预置时间段内最新产生的文件。
10.一种基于减少冗余数据的文件管理方法,其特征在于,包括:
对硬盘中各个分区的所有文件进行遍历;
判断所述硬盘中是否包含两个及以上相同的文件:在确定两个及以上文件大小相同、文件标识不同的前提下,根据两个及以上文件的校验值确定两个及以上文件是否相同;
通过创建硬链接,将两个及以上相同的文件合并为一个文件;
维护所述硬链接文件与一个或多个文件名的硬链接对应关系,在针对所述一个或多个文件名对所述硬链接文件进行更新、删除和/或修改时,通过维护所述硬链接对应关系,统一对所述硬链接文件进行所述更新、删除和/或修改的操作。
CN201510789116.2A 2015-11-17 2015-11-17 减少冗余数据的方法及装置 Pending CN105468686A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510789116.2A CN105468686A (zh) 2015-11-17 2015-11-17 减少冗余数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510789116.2A CN105468686A (zh) 2015-11-17 2015-11-17 减少冗余数据的方法及装置

Publications (1)

Publication Number Publication Date
CN105468686A true CN105468686A (zh) 2016-04-06

Family

ID=55606387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510789116.2A Pending CN105468686A (zh) 2015-11-17 2015-11-17 减少冗余数据的方法及装置

Country Status (1)

Country Link
CN (1) CN105468686A (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649721A (zh) * 2016-12-22 2017-05-10 创新科存储技术有限公司 一种文件排重方法和装置
CN106844431A (zh) * 2016-12-12 2017-06-13 北京猎豹移动科技有限公司 文件存储方法、装置及其电子设备
CN107391593A (zh) * 2017-06-29 2017-11-24 努比亚技术有限公司 一种文件处理方法、移动终端和计算机可读存储介质
CN107861686A (zh) * 2017-09-26 2018-03-30 深圳前海微众银行股份有限公司 文件存储方法、服务端和计算机可读存储介质
CN108037895A (zh) * 2017-12-06 2018-05-15 Tcl移动通信科技(宁波)有限公司 一种移动终端及数据信息存储控制方法、及存储介质
CN108052291A (zh) * 2017-12-14 2018-05-18 郑州云海信息技术有限公司 一种云服务器的存储方法、***、装置及可读存储介质
WO2018113210A1 (zh) * 2016-12-21 2018-06-28 深圳市易特科信息技术有限公司 医疗信息化重复医疗文件删除***及方法
CN109240985A (zh) * 2018-08-13 2019-01-18 上海擎感智能科技有限公司 多存储盘重复文件处理方法、***、存储介质及车机
CN110991361A (zh) * 2019-12-06 2020-04-10 衢州学院 面向高清高速视频的多通道多模态背景建模方法
CN111913916A (zh) * 2020-07-07 2020-11-10 泰康保险集团股份有限公司 一种文件重组的方法及设备
CN112131194A (zh) * 2020-09-24 2020-12-25 上海摩勤智能技术有限公司 一种只读文件***的文件存储控制方法及装置、存储介质
CN112527740A (zh) * 2019-09-17 2021-03-19 北京国双科技有限公司 文件资源的处理方法和装置、存储介质及电子设备
CN112612413A (zh) * 2020-12-04 2021-04-06 海光信息技术股份有限公司 一种版本管理文件缓存方法、装置、***和相关设备
CN113254397A (zh) * 2021-06-15 2021-08-13 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN113836093A (zh) * 2021-09-29 2021-12-24 深圳万兴软件有限公司 一种网盘文件清理方法、***、计算机设备及其存储介质
CN117648288A (zh) * 2022-09-05 2024-03-05 华为技术有限公司 文件处理方法及电子设备
CN117725028A (zh) * 2023-06-26 2024-03-19 荣耀终端有限公司 一种文件处理方法、终端设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储***中冗余文件的***及方法
CN103324699A (zh) * 2013-06-08 2013-09-25 西安交通大学 一种适应大数据应用的快速重复数据删除方法
CN104462591A (zh) * 2014-12-31 2015-03-25 上海斐讯数据通信技术有限公司 一种避免重复下载的方法及移动终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储***中冗余文件的***及方法
CN103324699A (zh) * 2013-06-08 2013-09-25 西安交通大学 一种适应大数据应用的快速重复数据删除方法
CN104462591A (zh) * 2014-12-31 2015-03-25 上海斐讯数据通信技术有限公司 一种避免重复下载的方法及移动终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王禹: "分布式存储***中的数据冗余与维护技术研究", 《中国博士学位论文全文数据库 信息科技辑》 *
王钧 等: "《操作***(Linux)》", 31 July 2015 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844431A (zh) * 2016-12-12 2017-06-13 北京猎豹移动科技有限公司 文件存储方法、装置及其电子设备
WO2018113210A1 (zh) * 2016-12-21 2018-06-28 深圳市易特科信息技术有限公司 医疗信息化重复医疗文件删除***及方法
CN106649721A (zh) * 2016-12-22 2017-05-10 创新科存储技术有限公司 一种文件排重方法和装置
CN107391593A (zh) * 2017-06-29 2017-11-24 努比亚技术有限公司 一种文件处理方法、移动终端和计算机可读存储介质
CN107861686B (zh) * 2017-09-26 2021-01-05 深圳前海微众银行股份有限公司 文件存储方法、服务端和计算机可读存储介质
CN107861686A (zh) * 2017-09-26 2018-03-30 深圳前海微众银行股份有限公司 文件存储方法、服务端和计算机可读存储介质
CN108037895A (zh) * 2017-12-06 2018-05-15 Tcl移动通信科技(宁波)有限公司 一种移动终端及数据信息存储控制方法、及存储介质
CN108037895B (zh) * 2017-12-06 2021-06-22 Tcl移动通信科技(宁波)有限公司 一种移动终端及数据信息存储控制方法、及存储介质
CN108052291A (zh) * 2017-12-14 2018-05-18 郑州云海信息技术有限公司 一种云服务器的存储方法、***、装置及可读存储介质
CN109240985A (zh) * 2018-08-13 2019-01-18 上海擎感智能科技有限公司 多存储盘重复文件处理方法、***、存储介质及车机
CN112527740A (zh) * 2019-09-17 2021-03-19 北京国双科技有限公司 文件资源的处理方法和装置、存储介质及电子设备
CN110991361A (zh) * 2019-12-06 2020-04-10 衢州学院 面向高清高速视频的多通道多模态背景建模方法
CN110991361B (zh) * 2019-12-06 2021-01-15 衢州学院 面向高清高速视频的多通道多模态背景建模方法
CN111913916A (zh) * 2020-07-07 2020-11-10 泰康保险集团股份有限公司 一种文件重组的方法及设备
CN112131194A (zh) * 2020-09-24 2020-12-25 上海摩勤智能技术有限公司 一种只读文件***的文件存储控制方法及装置、存储介质
CN112612413A (zh) * 2020-12-04 2021-04-06 海光信息技术股份有限公司 一种版本管理文件缓存方法、装置、***和相关设备
CN113254397A (zh) * 2021-06-15 2021-08-13 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN113836093A (zh) * 2021-09-29 2021-12-24 深圳万兴软件有限公司 一种网盘文件清理方法、***、计算机设备及其存储介质
CN113836093B (zh) * 2021-09-29 2024-04-12 深圳万兴软件有限公司 一种网盘文件清理方法、***、计算机设备及其存储介质
CN117648288A (zh) * 2022-09-05 2024-03-05 华为技术有限公司 文件处理方法及电子设备
CN117725028A (zh) * 2023-06-26 2024-03-19 荣耀终端有限公司 一种文件处理方法、终端设备和计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105468686A (zh) 减少冗余数据的方法及装置
US9189342B1 (en) Generic process for determining child to parent inheritance for fast provisioned or linked clone virtual machines
US9195667B2 (en) System for on-line archiving of content in an object store
US9639558B2 (en) Image building
CN109086388B (zh) 区块链数据存储方法、装置、设备及介质
US20190050421A1 (en) Fast Recovery Using Self-Describing Replica Files In A Distributed Storage System
US20170124345A1 (en) Reducing Resource Consumption Associated with Storage and Operation of Containers
US11042504B2 (en) Managing overwrites when archiving data in cloud/object storage
WO2016079629A1 (en) Optimizing database deduplication
US10248656B2 (en) Removal of reference information for storage blocks in a deduplication system
US10212067B2 (en) Dynamic symbolic links for referencing in a file system
US9965487B2 (en) Conversion of forms of user data segment IDs in a deduplication system
US9535925B2 (en) File link migration
US10915246B2 (en) Cloud storage format to enable space reclamation while minimizing data transfer
US11151093B2 (en) Distributed system control for on-demand data access in complex, heterogenous data storage
WO2007026484A1 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
US11500835B2 (en) Cohort management for version updates in data deduplication
CN112631621A (zh) 一种依赖包管理方法、装置、服务器及存储介质
US20230222165A1 (en) Object storage-based indexing systems and method
US10732843B2 (en) Tape drive data reclamation
WO2023201002A1 (en) Implementing graph search with in-structure metadata of a graph-organized file system
US10042854B2 (en) Detection of data affected by inaccessible storage blocks in a deduplication system
US9965488B2 (en) Back referencing of deduplicated data
US11762603B2 (en) Storing modified or unmodified portions of a file based on tape loading
US11947495B1 (en) System and method for providing a file system without duplication of files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160406