CN103995863B - 一种重复数据删除的方法及装置 - Google Patents

一种重复数据删除的方法及装置 Download PDF

Info

Publication number
CN103995863B
CN103995863B CN201410210106.4A CN201410210106A CN103995863B CN 103995863 B CN103995863 B CN 103995863B CN 201410210106 A CN201410210106 A CN 201410210106A CN 103995863 B CN103995863 B CN 103995863B
Authority
CN
China
Prior art keywords
fingerprint
image file
module
type
data block
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
CN201410210106.4A
Other languages
English (en)
Other versions
CN103995863A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410210106.4A priority Critical patent/CN103995863B/zh
Publication of CN103995863A publication Critical patent/CN103995863A/zh
Application granted granted Critical
Publication of CN103995863B publication Critical patent/CN103995863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明实施例提供了一种重复数据删除的方法及装置,该方法包括:根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,第一镜像文件为初始接收的虚拟机的镜像文件;将指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;接收第二镜像文件,调用与第二镜像文件的操作系统类型对应的指纹模块;获取第二镜像文件的数据块对应的指纹;将获取的指纹与调用出的指纹模块中的指纹一一进行比较,删除与调用出的指纹模块中的指纹重复的指纹对应的数据块。采用本发明,能通过建立指纹库并对指纹库按照操作系统的类型进行划分,提高对比指纹的效率以加快重复数据删除的速度。

Description

一种重复数据删除的方法及装置
技术领域
本发明涉及计算机领域,尤其涉及一种重复数据删除的方法及装置。
背景技术
虚拟机是指通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统,在一台物理计算机上模拟出另一台或多台虚拟的计算机,因此可以在同一台物理计算机上运行多个系统。目前许多用户通过运行虚拟机来提高计算机运行效率的方式已经逐渐普及。然而,虚拟机的镜像文件的数据存在很高的重复率,因此需要将重复的镜像文件删除,减少存储系统中使用的存储容量。一般情况下,重删服务器接收客户端发送的镜像文件,再针对接收的镜像文件进行重复数据删除。若此时客户端传输的速度大于重删服务器删除镜像文件的速度,例如同时有大量客户端并发传输的情况下,容易造成系统瓶颈,占用客户端的资源,甚至可能导致数据的丢失。因此,如何消除系统瓶颈以提高重删速度成为技术开发人员关注的焦点。
一种现有的方法主要针对客户端,通过限制客户端传输镜像文件的吞吐率以及并发客户端的个数来迎合重删服务器的吞吐率,以避免产生瓶颈。然而,单纯从限制客户端的角度解决系统的瓶颈会增加客户端的排队时间,并减少客户端传输的镜像文件的数量,对客户端传输镜像文件带来极大的不良影响,无法为客户端带来更好的服务。
另一现有的解决方法则主要针对重删服务器,即提高重删服务器的硬件性能。第一方面通过使用固态硬盘或磁盘阵列而提升重删服务器中存储系统的吞吐率。第二方面通过提高处理器的性能以减少对比指纹的时间,减少延迟等。第三方面在提高处理器性能的情况下通过使用更高性能的网卡提高网络的传输速率,避免让客户端的传输速率影响重删的速度。虽然提升重删服务器的硬件性能能够在不耽误客户端传输镜像文件的情况下消除系统的瓶颈,但其硬件成本过高使诸多开发商望而却步。
发明内容
本发明实施例提供一种重复数据删除的方法及装置,能通过建立指纹库并对指纹库按照操作系统的类型进行划分,提高对比指纹的效率以加快重复数据删除的速度。
本发明实施例第一方面提供一种重复数据删除的方法,包括:
根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;
将所述指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;
接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;
获取所述第二镜像文件的数据块对应的指纹;
将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。
结合本发明实施例第一方面的实现方式,在本发明实施例第一方面的第一种可能的实现方式中,所述第一镜像文件和所述第二镜像文件均携带类型指示信息,所述类型指示信息用于指示所述第一镜像文件和所述第二镜像文件的操作系统类型以及操作系统的版本类型。
结合本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述将所述指纹库划分为至少一个指纹模块,具体包括:
根据所述操作系统类型将所述指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;
按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
结合本发明实施例第一方面的第二种可能的实现方式,在本发明实施例第一方面的第三种可能的实现方式中,所述按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元,具体包括:
若任意两个版本的指纹的重复率大于第一预设值,则合并所述两个版本对应的指纹单元,并删除所述合并的指纹单元中重复的指纹,所述第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
结合本发明实施例第一方面的第二种或第三种中的任一种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,所述接收第二镜像文件,具体包括:
接收所述第二镜像文件,根据所述第二镜像文件携带的所述类型指示信息识别所述第二镜像文件的操作系统类型以及所述操作系统的版本类型;
所述调用与所述第二镜像文件的操作系统类型对应的指纹模块,具体包括:
调用与所述第二镜像文件的操作系统类型对应的指纹模块,在所述调用出的指纹模块中,调出与所述第二镜像文件的版本类型对应的指纹单元。
结合本发明实施例第一方面的第四种可能的实现方式,在本发明实施例第一方面的第五种可能的实现方式中,所述将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块,具体包括:
根据所述调用出的指纹模块中与所述第二镜像文件的版本类型对应的指纹单元,创建多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较,删除与所述指纹单元中的指纹重复的指纹对应的数据块。
结合本发明实施例第一方面的第五种可能的实现方式,在本发明实施例第一方面的第六种可能的实现方式中,创建所述线程的条件包括以下至少一种:
所述CPU的使用率小于第二预设值,所述第二预设值是根据操作系统对所述CPU的使用率的需求而设定的;
在所述多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较时,所述第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,所述第三预设值是根据对比较指纹的速度的要求而设定的;
在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
本发明实施例第二方面提供一种重复数据删除的装置,包括:
建立模块,用于根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;
划分模块,用于将所述建立模块建立的指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;
调用模块,用于接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;
获取模块,用于获取所述第二镜像文件的数据块对应的指纹;
删除模块,用于将所述获取模块获取的指纹与所述调用模块调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。
结合本发明实施例第二方面的实现方式,在本发明实施例第二方面的第一种可能的实现方式中,所述第一镜像文件和所述第二镜像文件均携带类型指示信息,所述类型指示信息用于指示所述第一镜像文件和所述第二镜像文件的操作系统类型以及操作系统的版本类型。
结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述划分模块包括:
第一划分单元,用于根据所述操作系统类型将所述指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;
第二划分单元,用于按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
结合本发明实施例第二方面的第二种可能的实现方式,在本发明实施例第二方面的第三种可能的实现方式中,所述第二划分单元,具体用于:
若任意两个版本的指纹的重复率大于第一预设值,则合并所述两个版本对应的指纹单元,并删除所述合并的指纹单元中重复的指纹,所述第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
结合本发明实施例第二方面的第二种或第三种中的任一种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述调用模块,具体用于:
接收所述第二镜像文件,根据所述第二镜像文件携带的所述类型指示信息识别所述第二镜像文件的操作系统类型以及所述操作系统的版本类型;
所述调用模块,具体还用于:
调用与所述第二镜像文件的操作系统类型对应的指纹模块,在所述调用出的指纹模块中,调出与所述第二镜像文件的版本类型对应的指纹单元。
结合本发明实施例第二方面的第四种可能的实现方式,在本发明实施例第二方面的第五种可能的实现方式中,所述删除模块,具体用于:
根据所述调用模块调用出的指纹模块中与所述第二镜像文件的版本类型对应的指纹单元,创建多个线程将所述获取模块获取的指纹与所述指纹单元中的指纹一一进行比较,删除与所述指纹单元中的指纹重复的指纹对应的数据块。
结合本发明实施例第二方面的第五种可能的实现方式,在本发明实施例第二方面的第六种可能的实现方式中,所述删除模块创建所述线程的条件包括以下至少一种:
所述CPU的使用率小于第二预设值,所述第二预设值是根据操作系统对所述CPU的使用率的需求而设定的;
在所述多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较时,所述第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,所述第三预设值是根据对比较指纹的速度的要求而设定的;
在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
采用本发明实施例,可针对初始接收的虚拟机的镜像文件的数据块对应的指纹建立指纹库,并按照不同镜像文件的操作系统类型将指纹库划分为至少一个指纹模块。当后续接收到其他镜像文件时,调入与其他镜像文件的操作系统类型对应的指纹模块,并创建多个线程对其他镜像文件中的多个数据块所对应的指纹与调入的指纹模块中的指纹进行一一对比。最后删除与调入的指纹模块中的指纹相同的指纹对应的数据块。在保证避免丢失数据的情况下提高对比指纹的效率,从而加快重复数据删除的速度,消除由于传输速度大于重复数据删除的速度所产生的系统瓶颈。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种重复数据删除的方法的流程示意图;
图2是本发明实施例的另一种重复数据删除的方法的流程示意图;
图3是本发明实施例的另一种重复数据删除的方法的指纹库的划分示意图;
图4是本发明实施例的另一种重复数据删除的方法的操作示意图;
图5是本发明实施例的一种重复数据删除的装置的结构示意图;
图6是本发明实施例的一种重复数据删除的装置的划分模块的结构示意图;
图7是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
采用本发明,能通过建立指纹库并对指纹库按照操作系统的类型进行划分,提高对比指纹的效率以加快重复数据删除的速度。
请参阅图1,图1是本发明实施例的一种重复数据删除的方法的流程示意图。本发明实施例主要针对虚拟机的镜像文件,且重复数据删除的工作方式是异步的,即先接收客户端传输的镜像文件,再对镜像文件进行重复数据删除。重复数据删除的实施装置可由服务器实现,服务器与众多客户端之间通过路由器连接,路由器作为转发镜像文件的中介。本发明实施例所涉及的镜像文件可来自不同的操作系统,每个操作系统在进行重复数据删除时是相互独立的,因此可对不同操作系统并行地重复数据删除。
此外,本发明实施例所涉及的数据块可通过采用散列函数算法计算数据块的散列值,该散列值即为数据块的指纹,根据数据块获取指纹的方式为现有技术,本发明实施例则不赘述。
本发明实施例所涉及的第一镜像文件既可包括至少一个虚拟机的镜像文件,其中这至少一个虚拟机的镜像文件可为不同虚拟机的镜像文件,也可为一个虚拟机的镜像文件,本发明实施例则以第一镜像文件包括至少一个虚拟机的镜像文件进行举例说明。
如图1所示,本发明实施例的一种重复数据删除的方法可以包括以下步骤。
步骤100,根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,第一镜像文件为初始接收的虚拟机的镜像文件。
具体实现中,初始状态下,客户端向服务器传送第一镜像文件,其中第一镜像文件包括至少一个虚拟机的镜像文件,这至少一个虚拟机的镜像文件可为不同虚拟机的镜像文件。每个镜像文件被切分为至少一个数据块,并根据每个数据块对应的指纹建立指纹库,将所有指纹都存储在指纹库中。其中,分割镜像文件的切分算法可以为完全文件检测技术(WFD,Whole File Detection)、固定分块检测技术(FSP,Fixed-sized Partition)、可变分块检测技术(CDC,Content-Defined Chunking)及滑动块算法等任意一种。由于分割镜像文件的切分算法为现有技术,本发明实施例则不进行具体说明。
步骤110,将指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型。
具体实现中,由于每个镜像文件的操作系统类型不一定相同,如果将所有操作系统类型的指纹集合为一个指纹库,会为查找指纹增加难度。在针对后续划分生成的数据块的指纹与指纹库内的指纹进行比较时,需要对指纹库内的每个指纹进行一一比较,从而增加对比指纹的时间,降低重删的速度,产生系统的瓶颈。此外,由于指纹库容量很大,无法完全放入内存,也为后续重删带来不便。为了加快指纹查找速度,将所有指纹按照操作系统类型进行分组,每组为一个指纹模块,每个指纹模块代表一个操作系统类型。操作系统类型可为Windows XP、WIN7或者乌班图(Ubuntu)系统等等。
步骤120,接收第二镜像文件,调用与第二镜像文件的操作系统类型对应的指纹模块,第二镜像文件为在初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件。
具体实现中,服务器在建立指纹库之后,开始接收客户端发送的第二镜像文件。在接收第二镜像文件之后,服务器识别第二镜像文件的操作系统类型,根据其操作系统类型调入相应的指纹模块到内存中。其中,每个镜像文件均携带各自的类型指示信息,类型指示信息用于指示镜像文件的操作系统类型。若第二镜像文件携带的类型指示信息指示第二镜像文件的操作系统类型为WIN7,则服务器在接收第二镜像文件之后,调入包括WIN7所有指纹的指纹模块进行重删。
步骤130,获取第二镜像文件的数据块对应的指纹。
具体实现中,服务器将接收的第二镜像文件划分为至少一个数据块,并通过计算每个数据块的散列值获取数据块的指纹。
步骤140,将获取的指纹与调用出的指纹模块中的指纹一一进行比较,删除与调用出的指纹模块中的指纹重复的指纹对应的数据块。
具体实现中,服务器得到每个数据块的指纹之后,将这些指纹与调入的指纹模块中的指纹一一进行比较,当在指纹模块中查找到有相同的指纹时,则删除该指纹对应的数据块,保留被删除的数据块在磁盘中的物理地址,以便后续需要恢复镜像文件时,通过数据块的物理地址在服务器的磁盘中调出数据块。
作为一种可实施的方式,若服务器根据第二镜像文件的数据块的指纹在指纹模块中没有查找到相同的指纹,可将这个数据块的指纹保存在指纹模块中,并保存这个数据块在服务器的磁盘中。
通过实施图1所描述的方法,可针对初始接收的虚拟机的镜像文件的数据块对应的指纹建立指纹库,并按照不同镜像文件的操作系统类型将指纹库划分为至少一个指纹模块。当后续接收到其他镜像文件时,调入与其他镜像文件的操作系统类型对应的指纹模块,并对其他镜像文件中的多个数据块所对应的指纹与调入的指纹模块中的指纹进行一一对比。最后删除与调入的指纹模块中的指纹相同的指纹对应的数据块。在保证避免丢失数据的情况下提高对比指纹的效率,从而加快重复数据删除的速度,消除由于传输速度大于重复数据删除的速度所产生的系统瓶颈。
请参阅图2,图2是本发明实施例的另一种重复数据删除的方法的流程示意图。本发明实施例主要针对虚拟机的镜像文件,并且重复数据删除的工作方式是异步的,即先接收客户端传输的镜像文件,再对镜像文件进行重复数据删除。重复数据删除的实施装置可由服务器实现,服务器与众多客户端之间通过路由器连接,路由器作为转发镜像文件的中介。本发明实施例所涉及的镜像文件来自不同的操作系统,每个操作系统在进行重复数据删除时是相互独立的,因此可对不同操作系统并行地重复数据删除。
此外,本发明实施例所涉及的数据块可通过采用散列函数算法计算数据块的散列值,该散列值即为数据块的指纹,根据数据块获取指纹的方式为现有技术,本发明实施例则不赘述。
本发明实施例所涉及的第一镜像文件既可包括至少一个虚拟机的镜像文件,其中这至少一个虚拟机的镜像文件可为不同虚拟机的镜像文件,也可为一个虚拟机的镜像文件,本发明实施例则以第一镜像文件包括至少一个虚拟机的镜像文件进行举例说明。
如图2所示,本发明实施例的另一种重复数据删除的方法可以包括以下步骤。
步骤200,根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,第一镜像文件为初始接收的虚拟机的镜像文件。
具体实现中,初始状态下的服务器的指纹库中不存在指纹,因此,服务器在第一次接收镜像文件时,将镜像文件中所有数据块的指纹保存在指纹库中,并将所有数据块保存在磁盘中。例如,客户端向服务器传送第一镜像文件,其中第一镜像文件包括至少一个虚拟机的镜像文件,这至少一个虚拟机的镜像文件可为不同虚拟机的镜像文件。每个镜像文件被分割为至少一个数据块,并根据每个数据块对应的指纹建立指纹库,将所有指纹都存储在指纹库中。其中,分割镜像文件的切分算法可以为WFD技术、FSP技术、CDC技术及滑动块算法等任意一种。由于分割镜像文件的切分算法为现有技术,本发明实施例则不进行具体说明。
可选的,每个镜像文件均携带类型指示信息,所述类型指示信息用于指示每个镜像文件的操作系统类型以及操作系统的版本类型。
作为一种可实施的方式,在服务器接收一个镜像文件时,除了通过镜像文件携带的类型指示信息识别镜像文件的操作系统类型之外,还可通过读取镜像文件内核中的类型代码来识别该镜像文件的操作系统类型。
作为一种可实施的方式,可对指纹库增加全局锁,以保证增加指纹进入指纹库时是串行执行的。若没有对指纹库增加全局锁,容易导致多个指纹在同一时间内进入指纹库,而这多个指纹中存在着相同指纹的情况下,不易分辨,从而增加存储容量。
步骤210,根据操作系统类型将指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块。
具体实现中,由于每个镜像文件的操作系统类型不一定相同,如果将所有操作系统类型的指纹集合为一个指纹库,会为查找指纹增加难度,增加对比指纹的时间,从而降低重删的速度,产生系统的瓶颈。此外,由于指纹库太大,无法完全放入内存,也为后续重删带来不便。结合图3,为了加快指纹查找速度,将所有指纹按照操作系统类型指示信息进行分组,划分为至少一个指纹模块,每个指纹模块代表一个操作系统类型。对于无法识别的操作系统,例如比较冷门的操作系统则统一归为公共指纹模块。如图3所示的指纹库划分示意图,所有指纹模块存储在磁盘中,磁盘中包括XP镜像指纹模块、WIN7镜像指纹模块、Ubuntu镜像指纹模块以及公共镜像指纹模块等等。当需要查找其中一个指纹模块时,将该指纹模块调入内存中进行查找对比即可。在下一次接收镜像文件时,通过识别该镜像文件的操作系统类型迅速调入对应的指纹模块进行查找,节省对比指纹的时间。
步骤220,按照操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
具体实现中,由于每个操作系统有不同的版本,每个版本之间的指纹不尽相同。为了提高查找指纹的精确度,可在服务器空闲的时候对一个操作系统内的指纹根据版本的不同再进行细分,即将每个指纹模块再划分为至少一个指纹单元,一个指纹单元对应一个操作系统的版本类型。
可选的,若任意两个版本的指纹的重复率大于第一预设值,则合并两个版本对应的指纹单元,并删除合并的指纹单元中重复的指纹,第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
作为一种可实施的方式,为了对分类进行优化,在一个操作系统的指纹模块中,通过计算两个版本的指纹单元的指纹的重复率来进行分类。例如,XP系统中SP1版本的指纹单元与SP2版本的指纹单元的指纹的重复率在70%以上,Ubuntu系统中11.04版本的指纹单元和9.04版本的指纹单元的指纹的重复率为9%,而11.04版本的指纹单元和12.04版本的指纹单元的指纹的重复率为25%,这说明同一个操作系统中的不同版本的指纹单元之间存在一定的重复率,其重复率远远高于不同操作系统之间的重复率。因此,可针对不同操作系统设置对应的重复率,在一个操作系统的指纹模块里,若任意两个版本的指纹单元的指纹的重复率大于第一预设值,则将这两个版本的指纹单元进行合并。例如,对于Ubuntu系统,当Ubuntu镜像指纹模块中存在9.04版本、11.04版本和12.04版本的指纹单元时,根据CPU的存储空间以及对比较指纹的速度的要求可设置20%的重复率作为第一预设值。由于11.04版本的指纹单元和12.04版本的指纹单元的指纹的重复率为25%,超过预设的20%的重复率,则可将11.04版本的指纹单元和12.04版本的指纹单元合并为11.04的指纹单元,并将其重复的数据块删除,减小存储容量;而11.04版本的指纹单元和9.04版本的指纹单元的指纹的重复率为9%,远远小于20%的重复率,可将他们的指纹单元区别对待。因此,如图3所示,最后Ubuntu镜像指纹模块中包括9.04版本和11.04版本的指纹单元。而XP镜像指纹模块、WIN7镜像指纹模块以及公共镜像指纹模块能以相同的方式进行进一步的划分,本实施例则不再进行一一举例。
作为一种可实施的方式,在对指纹模块进行进一步的划分之后,可对划分后的每个指纹单元增加全局锁,使不同指纹单元之间相互隔离,不同操作系统不同版本的镜像文件能够实现并行重删的操作,加快重删的速度。
步骤230,接收第二镜像文件,根据第二镜像文件携带的类型指示信息识别第二镜像文件的操作系统类型以及操作系统的版本类型。
具体实现中,第二镜像文件为在初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件。由于第二镜像文件携带类型指示信息,类型指示信息用于指示第二镜像文件的操作系统类型以及操作系统的版本类型。
可选的,服务器可在磁盘中建立一个缓冲区,结合图4所示的操作示意图进行详细说明,在接收多个镜像文件的同时,将这些镜像文件按照接收的顺序依次保存在缓冲区中以等待重删。其中,每个镜像文件被分割为至少一个数据块,将这些数据块保存在存储单元中。结合图4,以第二镜像文件为Ubuntu系统下9.04版本的镜像文件为例,按照先入先出的规则对缓冲区中的存储单元a1至存储单元an依次调入内存中进行重复数据删除。当一个存储单元a1进入内存时,服务器通过第二镜像文件携带的类型指示信息识别存储单元a1的操作系统类型。在客户端并发传输大量镜像文件的情况下,服务器通过事先保存镜像文件能够避免传输的瓶颈以及发生数据丢失的情况。
作为一种可实施的方式,若客户端传输速率的带宽并未超出服务器的吞吐率,此时仍然先将镜像文件保存在缓冲区中,以应对客户端传输吞吐率瞬时超出服务器的吞吐率的情况。
步骤240,调用与第二镜像文件的操作系统类型对应的指纹模块,在调用出的指纹模块中,调出与第二镜像文件的版本类型对应的指纹单元。
具体实现中,当一个存储单元a1进入内存时,服务器通过识别存储单元a1的操作系统类型以及操作系统的版本类型得知存储单元a1为Ubuntu系统的9.04版本类型,则将磁盘中Ubuntu系统下9.04版本的指纹单元调入内存。由于每个操作系统之间相互独立,因此在CPU资源有空余的情况下可同时对多个操作系统对应的镜像文件进行重删,即可同时调入多个指纹单元或者指纹模块到内存中。例如,在存储单元a1被调入内存中进行重删的同时,若此时缓冲区的存储单元中包含其他操作系统的存储单元,如存储单元bn为XP系统的镜像文件时,也可调入XP镜像指纹模块到内存中参与重复数据删除。
作为一种可实施的方式,每个指纹单元之间也相互独立,因此,多个操作系统或多个系统版本对应的镜像文件可同时进行重删,本发明实施例则不再进行举例说明。
步骤250,获取第二镜像文件的数据块对应的指纹。
具体实现中,服务器可通过创建线程计算存储单元中每个数据块的散列值获取数据块的指纹。其中,线程还用于将获取的指纹与指纹模块或指纹单元中的指纹一一进行比较,若查找到有相同的指纹,则将存储单元中相同指纹对应的数据块删除,此时线程工作的上述过程即为重复数据删除过程。
步骤260,根据调用出的指纹模块中与第二镜像文件的版本类型对应的指纹单元,创建多个线程将获取的指纹与指纹单元中的指纹一一进行比较,删除与指纹单元中的指纹重复的指纹对应的数据块。
具体实现中,下面针对存储单元a1的重删过程进行举例说明。结合图4,为了加快重删的速度,可创建多个线程如线程1、线程2以及线程3,同时获取存储单元a1的队列头部的三个数据块的指纹,每个线程获取一个数据块的指纹,如线程1获取数据块1的指纹,线程2获取数据块2的指纹,线程3获取数据块3的指纹。三个线程同时分别获取所针对的数据块的指纹,并与调入的Ubuntu系统下9.04版本的指纹单元中的指纹一一进行对比,查找是否有与数据块的指纹相同的指纹。
可选的,创建线程的条件包括以下至少一种:CPU的使用率小于第二预设值,第二预设值是根据操作系统对CPU的使用率的需求而设定的;在多个线程将获取的指纹与指纹单元中的指纹一一进行比较时,第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,第三预设值是根据对比较指纹的速度的要求而设定的;在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
具体实现中,对于条件一,CPU的使用率小于第二预设值。根据当前服务器使用的操作系统对CPU的使用率的需求,可设定第一预设值为12%,在对当前的存储单元中的数据块进行重复数据删除时,若此时服务器的CPU的使用率低于12%,即CPU处于工作比较空闲的状态,则可以在已经有线程进行重复数据删除的基础上再创建线程参与重复数据删除,提高重删速度。
具体实现中,对于条件二,在进行重复数据删除时,存储单元中剩余的数据块的块数大于第三预设值。如果传输的镜像文件比较大,其分割的数据块的数量也比较多,此时可增加线程的数量以提高重删的速度,因此可根据服务器对比较指纹的速度的要求,设置剩余块数(即第三预设值)为20块。若存储单元a2所对应的镜像文件的容量为20G,根据切分算法的规则,分割的数据块每块的容量可在750MB左右,则存储单元a2包括了将近31块的数据块,在线程1、线程2以及线程3初始进行重复数据删除时,存储单元a2中还剩余28块数据块,大于第三预设值,则可以再增加线程的数量以提高重删的速度。
具体实现中,对于条件三,存在以下两种情况:在检测到无线程对存储单元a1中的多个数据块执行重删的操作时,存在至少一个未被执行的存储单元;当内存中的重复数据删除操作结束时,或者线程暂停进行重复数据删除的操作时,缓冲区中仍然存在至少一个未被执行的存储单元排队等待重删,此时将下一个存储单元即存储单元a2调入内存,重新创建线程执行重复数据删除的操作。
具体实现中,若线程在Ubuntu系统下9.04版本的指纹单元中查找到相同的指纹,则将该数据块删除,保留被删除的数据块在磁盘中的物理地址,以便后续需要恢复镜像文件时,通过数据块的物理地址在磁盘中调出数据块。若线程没有在指纹库中查找到相同的指纹,则保留该数据块在存储单元a1中,或者,将该数据块存储在磁盘中,并将对应的指纹存入Ubuntu系统下9.04版本的指纹单元。若需要恢复镜像文件,只需根据被删除的数据块的磁盘物理地址查找对应的数据块恢复镜像文件即可。
作为一种可实施的方式,当线程对当前的数据块完成重删,如当线程1、线程2以及线程3对数据块1、数据块2以及数据块3进行查找并删除完成之后,线程1、线程2以及线程3再同时指向数据块4、数据块5以及数据块6,对这三个数据块执行重复数据删除的操作。
可选的,由于内存的处理空间有限,若一个存储单元中的数据块的数量比较多,不能一次将一个存储单元中的所有数据块调入内存时,服务器可创建拷贝线程(未图示)将存储单元a1中的数据块分多次按照一定的数量调入内存中进行重删。当拷贝线程(未图示)突然停止将数据块调入内存中时,线程1、线程2以及线程3暂停正在进行的工作,并调入存储单元a2,重新创建线程1、线程2以及线程3对存储单元a2执行重删。若此时存储单元a1请求恢复重复数据删除的操作,线程1、线程2以及线程3继续对存储单元a2执行操作直到结束,再跳转到存储单元a1,恢复对存储单元a1的操作。此举能够避免在存储单元a1频繁暂停的情况下,造成线程因反复跳转而使得存储单元a1以及存储单元a2各自的数据不连续,容易导致数据丢失。此外,线程反复在不同存储单元之间跳转也会降低重删的速度,增加处理的时间。
通过实施图2所描述的方法,可针对初始接收的虚拟机的镜像文件的数据块对应的指纹建立指纹库,并按照不同镜像文件的操作系统类型将指纹库划分为至少一个指纹模块,还可针对一个操作系统中的不同版本类型将指纹模块分为至少一个指纹单元。当后续接收到其他镜像文件时,调入与其他镜像文件的操作系统类型对应的指纹模块或者指纹单元,并创建多个线程对其他镜像文件中的多个数据块所对应的指纹与调入的指纹模块或者指纹单元中的指纹进行一一对比。最后删除与调入的指纹模块中的指纹相同的指纹对应的数据块。在保证避免丢失数据的情况下提高对比指纹的效率,从而加快重复数据删除的速度,消除由于传输速度大于重复数据删除的速度所产生的系统瓶颈。
请参阅图5,图5是本发明实施例的一种重复数据删除的装置的结构示意图。如图5所示的重复数据删除的装置包括:建立模块500、划分模块510、调用模块520、获取模块530以及删除模块540。
建立模块500,用于根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,第一镜像文件为初始接收的虚拟机的镜像文件。
划分模块510,用于将建立模块500建立的指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型。
调用模块520,用于接收第二镜像文件,调用与第二镜像文件的操作系统类型对应的指纹模块,第二镜像文件为在初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件。
获取模块530,用于获取第二镜像文件的数据块对应的指纹。
删除模块540,用于将获取模块530获取的指纹与调用模块520调用出的指纹模块中的指纹一一进行比较,删除与调用出的指纹模块中的指纹重复的指纹对应的数据块。
作为一种可实施的方式,调用模块520具体用于接收第二镜像文件,根据第二镜像文件携带的类型指示信息识别第二镜像文件的操作系统类型以及操作系统的版本类型。
作为一种可实施的方式,调用模块520具体还用于调用与第二镜像文件的操作系统类型对应的指纹模块,在调用出的指纹模块中,调出与第二镜像文件的版本类型对应的指纹单元。
作为一种可实施的方式,删除模块540具体用于根据调用模块520调用出的指纹模块中与第二镜像文件的版本类型对应的指纹单元,创建多个线程将获取模块530获取的指纹与指纹单元中的指纹一一进行比较,删除与指纹单元中的指纹重复的指纹对应的数据块。
作为一种可实施的方式,删除模块540创建线程的条件包括以下至少一种:CPU的使用率小于第二预设值,第二预设值是根据操作系统对CPU的使用率的需求而设定的;在多个线程将获取的指纹与指纹单元中的指纹一一进行比较时,第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,第三预设值是根据对比较指纹的速度的要求而设定的;在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
通过实施图5所描述的装置,可针对初始接收的虚拟机的镜像文件的数据块对应的指纹建立指纹库,并按照不同镜像文件的操作系统类型将指纹库划分为至少一个指纹模块,还可针对一个操作系统中的不同版本类型将指纹模块分为至少一个指纹单元。当后续接收到其他镜像文件时,调入与其他镜像文件的操作系统类型对应的指纹模块或者指纹单元,最后删除与调入的指纹模块中的指纹相同的指纹对应的数据块。在保证避免丢失数据的情况下提高对比指纹的效率,从而加快重复数据删除的速度,消除由于传输速度大于重复数据删除的速度所产生的系统瓶颈。
图6是本发明实施例的一种重复数据删除的装置的划分模块的结构示意图;
如图6所示的划分模块510包括第一划分单元600以及第二划分单元610。
第一划分单元600,用于根据操作系统类型将指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块。
第二划分单元610,用于按照操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
作为一种可实施的方式,第二划分单元610具体用于若任意两个版本的指纹的重复率大于第一预设值,则合并两个版本对应的指纹单元,并删除合并的指纹单元中重复的指纹,第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
通过实施图6所描述的划分模块510,能在建立指纹库的基础上对指纹库进行进一步的划分,能够加快服务器比较指纹的速度,从而提高重复数据删除的速度,增强服务器重复数据删除的效率。
请参阅图7,图7是本发明实施例提供的服务器的结构示意图,包括至少一个处理器700(例如CPU),至少一个网络接口710或者其他通信接口,存储器720,接收器730以及至少一个通信总线740,用于实现这些装置之间的连接通信。接收器730用于接收客户端发送的镜像文件。处理器700用于执行存储器720中存数的可执行模块,例如计算机程序。存储器720可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口710(可以是有线或者无线)实现该服务器与至少一个客户端之间的通信连接,可以使用互联网,广域网,本地网,局域网等。
在一些实施方式中,存储器720存储了程序750,程序750可以被处理器700执行,这个程序750执行以下步骤:
根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,第一镜像文件为初始接收的虚拟机的镜像文件;将指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;接收第二镜像文件,调用与第二镜像文件的操作系统类型对应的指纹模块,第二镜像文件为在初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;获取第二镜像文件的数据块对应的指纹;将获取的指纹与调用出的指纹模块中的指纹一一进行比较,删除与调用出的指纹模块中的指纹重复的指纹对应的数据块。
作为一种可实施的方式,第一镜像文件和第二镜像文件均携带类型指示信息,类型指示信息用于指示第一镜像文件和第二镜像文件的操作系统类型以及操作系统的版本类型。
程序750将指纹库划分为至少一个指纹模块,具体执行一下步骤:
根据操作系统类型将指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;按照操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
程序750按照操作系统的版本类型将每个指纹模块划分为至少一个指纹单元,具体执行一下步骤:
若任意两个版本的指纹的重复率大于第一预设值,则合并两个版本对应的指纹单元,并删除合并的指纹单元中重复的指纹,第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
程序750接收第二镜像文件,具体执行一下步骤:
接收第二镜像文件,根据第二镜像文件携带的类型指示信息识别第二镜像文件的操作系统类型以及操作系统的版本类型。
程序750调用与第二镜像文件的操作系统类型对应的指纹模块,具体执行一下步骤:
调用与第二镜像文件的操作系统类型对应的指纹模块,在调用出的指纹模块中,调出与第二镜像文件的版本类型对应的指纹单元。
程序750将获取的指纹与调用出的指纹模块中的指纹一一进行比较,删除与调用出的指纹模块中的指纹重复的指纹对应的数据块,具体执行一下步骤:
根据调用出的指纹模块中与第二镜像文件的版本类型对应的指纹单元,创建多个线程将获取的指纹与指纹单元中的指纹一一进行比较,删除与指纹单元中的指纹重复的指纹对应的数据块。
程序750创建线程的条件包括以下至少一种:
CPU的使用率小于第二预设值,第二预设值是根据操作系统对CPU的使用率的需求而设定的;在多个线程将获取的指纹与指纹单元中的指纹一一进行比较时,第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,第三预设值是根据对比较指纹的速度的要求而设定的;在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
通过实施图7所描述的服务器,可针对初始接收的虚拟机的镜像文件的数据块对应的指纹建立指纹库,并按照不同镜像文件的操作系统类型将指纹库划分为至少一个指纹模块。当后续接收到其他镜像文件时,调入与其他镜像文件的操作系统类型对应的指纹模块,并对其他镜像文件中的多个数据块所对应的指纹与调入的指纹模块中的指纹进行一一对比。最后删除与调入的指纹模块中的指纹相同的指纹对应的数据块。在保证避免丢失数据的情况下提高对比指纹的效率,从而加快重复数据删除的速度,消除由于传输速度大于重复数据删除的速度所产生的系统瓶颈。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块或单元可以根据实际需要进行合并、划分和删减。
本发明实施例的模块或模块,可以以通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。

Claims (14)

1.一种重复数据删除的方法,其特征在于,包括:
根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;
将所述指纹库中的所有指纹按照操作系统类型划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;
接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;
获取所述第二镜像文件的数据块对应的指纹;
将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。
2.根据权利要求1所述的方法,其特征在于,
所述第一镜像文件和所述第二镜像文件均携带类型指示信息,所述类型指示信息用于指示所述第一镜像文件和所述第二镜像文件的操作系统类型以及操作系统的版本类型。
3.根据权利要求2所述的方法,其特征在于,
所述将所述指纹库中的所有指纹按照操作系统类型划分为至少一个指纹模块,具体包括:
根据所述操作系统类型将所述指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;
按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
4.根据权利要求3所述的方法,其特征在于,
所述按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元,具体包括:
若任意两个版本的指纹的重复率大于第一预设值,则合并所述两个版本对应的指纹单元,并删除所述合并的指纹单元中重复的指纹,所述第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
5.根据权利要求3或4任一项所述的方法,其特征在于,
所述接收第二镜像文件,具体包括:
接收所述第二镜像文件,根据所述第二镜像文件携带的所述类型指示信息识别所述第二镜像文件的操作系统类型以及所述操作系统的版本类型;
所述调用与所述第二镜像文件的操作系统类型对应的指纹模块,具体包括:
调用与所述第二镜像文件的操作系统类型对应的指纹模块,在所述调用出的指纹模块中,调出与所述第二镜像文件的版本类型对应的指纹单元。
6.根据权利要求5所述的方法,其特征在于,
所述将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块,具体包括:
根据所述调用出的指纹模块中与所述第二镜像文件的版本类型对应的指纹单元,创建多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较,删除与所述指纹单元中的指纹重复的指纹对应的数据块。
7.根据权利要求6所述的方法,其特征在于,创建所述线程的条件包括以下至少一种:
CPU的使用率小于第二预设值,所述第二预设值是根据操作系统对所述CPU的使用率的需求而设定的;
在所述多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较时,所述第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,所述第三预设值是根据对比较指纹的速度的要求而设定的;
在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
8.一种重复数据删除的装置,其特征在于,包括:
建立模块,用于根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;
划分模块,用于将所述建立模块建立的指纹库中的所有指纹按照操作系统类型划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;
调用模块,用于接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;
获取模块,用于获取所述第二镜像文件的数据块对应的指纹;
删除模块,用于将所述获取模块获取的指纹与所述调用模块调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。
9.根据权利要求8所述的装置,其特征在于,
所述第一镜像文件和所述第二镜像文件均携带类型指示信息,所述类型指示信息用于指示所述第一镜像文件和所述第二镜像文件的操作系统类型以及操作系统的版本类型。
10.根据权利要求9所述的装置,其特征在于,所述划分模块包括:
第一划分单元,用于根据所述操作系统类型将所述指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;
第二划分单元,用于按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。
11.根据权利要求10所述的装置,其特征在于,所述第二划分单元,具体用于:
若任意两个版本的指纹的重复率大于第一预设值,则合并所述两个版本对应的指纹单元,并删除所述合并的指纹单元中重复的指纹,所述第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。
12.根据权利要求10或11任一项所述的装置,其特征在于,
所述调用模块,具体用于:
接收所述第二镜像文件,根据所述第二镜像文件携带的所述类型指示信息识别所述第二镜像文件的操作系统类型以及所述操作系统的版本类型;
所述调用模块,具体还用于:
调用与所述第二镜像文件的操作系统类型对应的指纹模块,在所述调用出的指纹模块中,调出与所述第二镜像文件的版本类型对应的指纹单元。
13.根据权利要求12所述的装置,其特征在于,所述删除模块,具体用于:
根据所述调用模块调用出的指纹模块中与所述第二镜像文件的版本类型对应的指纹单元,创建多个线程将所述获取模块获取的指纹与所述指纹单元中的指纹一一进行比较,删除与所述指纹单元中的指纹重复的指纹对应的数据块。
14.根据权利要求13所述的装置,其特征在于,所述删除模块创建所述线程的条件包括以下至少一种:
CPU的使用率小于第二预设值,所述第二预设值是根据操作系统对所述CPU的使用率的需求而设定的;
在所述多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较时,所述第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,所述第三预设值是根据对比较指纹的速度的要求而设定的;
在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。
CN201410210106.4A 2014-05-19 2014-05-19 一种重复数据删除的方法及装置 Active CN103995863B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410210106.4A CN103995863B (zh) 2014-05-19 2014-05-19 一种重复数据删除的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410210106.4A CN103995863B (zh) 2014-05-19 2014-05-19 一种重复数据删除的方法及装置

Publications (2)

Publication Number Publication Date
CN103995863A CN103995863A (zh) 2014-08-20
CN103995863B true CN103995863B (zh) 2018-06-19

Family

ID=51310028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410210106.4A Active CN103995863B (zh) 2014-05-19 2014-05-19 一种重复数据删除的方法及装置

Country Status (1)

Country Link
CN (1) CN103995863B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329836B (zh) * 2017-07-13 2021-01-22 北京元心科技有限公司 多系统的内存管理方法、管理装置以及移动终端
CN108650410B (zh) * 2018-04-18 2021-05-28 青岛海信移动通信技术股份有限公司 一种清除指纹数据的方法及装置
US11182193B2 (en) * 2019-07-02 2021-11-23 International Business Machines Corporation Optimizing image reconstruction for container registries
CN111737206B (zh) * 2020-06-06 2023-01-10 苏州浪潮智能科技有限公司 一种文件重删处理方法、系统、终端及存储介质
CN114003333A (zh) * 2020-07-27 2022-02-01 阿里巴巴集团控股有限公司 一种镜像仓库及其压缩方法和装置
CN114528147B (zh) * 2020-10-30 2023-04-25 成都鼎桥通信技术有限公司 双操作系统中指纹删除的方法和装置
CN114138198B (zh) * 2021-11-29 2024-05-28 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455949A (zh) * 2010-10-20 2012-05-16 英业达股份有限公司 备份方法
CN102831222A (zh) * 2012-08-24 2012-12-19 华中科技大学 一种基于重复数据删除的差量压缩方法
CN103150260A (zh) * 2011-11-25 2013-06-12 华为数字技术(成都)有限公司 重复数据删除方法和装置
CN103544090A (zh) * 2013-10-16 2014-01-29 北京航空航天大学 虚拟机进程监控方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610281B (zh) * 2008-06-19 2012-11-21 华为技术有限公司 一种数据指纹保存方法和装置
US8688651B2 (en) * 2011-01-25 2014-04-01 Sepaton, Inc. Dynamic deduplication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455949A (zh) * 2010-10-20 2012-05-16 英业达股份有限公司 备份方法
CN103150260A (zh) * 2011-11-25 2013-06-12 华为数字技术(成都)有限公司 重复数据删除方法和装置
CN102831222A (zh) * 2012-08-24 2012-12-19 华中科技大学 一种基于重复数据删除的差量压缩方法
CN103544090A (zh) * 2013-10-16 2014-01-29 北京航空航天大学 虚拟机进程监控方法和装置

Also Published As

Publication number Publication date
CN103995863A (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
CN103995863B (zh) 一种重复数据删除的方法及装置
US8954401B2 (en) Systems and methods for providing increased scalability in deduplication storage systems
JP6576563B2 (ja) データオブジェクトを効率よく分類するシステム及び方法
Rahman et al. HOMR: A hybrid approach to exploit maximum overlapping in MapReduce over high performance interconnects
US11599595B2 (en) Determining whether to process identified uniform resource locators
US20150163285A1 (en) Identifying The Workload Of A Hybrid Cloud Based On Workload Provisioning Delay
WO2017107812A1 (zh) 一种用户日志存储方法及设备
US9535743B2 (en) Data processing control method, computer-readable recording medium, and data processing control device for performing a Mapreduce process
US11099767B2 (en) Storage system with throughput-based timing of synchronous replication recovery
CN107506145B (zh) 一种物理存储调度方法及云主机创建方法
CN102541467B (zh) 一种对象数据服务器读写请求的调度方法
US20150066877A1 (en) Segment combining for deduplication
Xu et al. A lightweight virtual machine image deduplication backup approach in cloud environment
US20170048352A1 (en) Computer-readable recording medium, distributed processing method, and distributed processing device
US9424269B1 (en) Systems and methods for deduplicating archive objects
CN106227469A (zh) 用于分布式存储集群的数据删除方法及系统
US20170212846A1 (en) Analyzing lock contention within a system
CN108090186A (zh) 一种大数据平台上的电力数据去重方法
CN108874508A (zh) 一种云计算虚拟服务器系统负载均衡调度方法
US20140157266A1 (en) Restoring a Previous Version of a Virtual Machine Image
US20210117235A1 (en) Storage system with efficient release of address lock waiters during synchronous replication
US20180349465A1 (en) Minimizing data transport within a storlet architecture
CN112783417A (zh) 数据缩减的方法、装置、计算设备和存储介质
US10673937B2 (en) Dynamic record-level sharing (RLS) provisioning inside a data-sharing subsystem
CN113986471A (zh) 虚拟机镜像文件安全删除方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant