一种重复数据删除的方法及装置制造方法及图纸

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

【技术实现步骤摘要】
一种重复数据删除的方法及装置
本专利技术涉及计算机领域,尤其涉及一种重复数据删除的方法及装置。
技术介绍
虚拟机是指通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统,在一台物理计算机上模拟出另一台或多台虚拟的计算机,因此可以在同一台物理计算机上运行多个系统。目前许多用户通过运行虚拟机来提高计算机运行效率的方式已经逐渐普及。然而,虚拟机的镜像文件的数据存在很高的重复率,因此需要将重复的镜像文件删除,减少存储系统中使用的存储容量。一般情况下,重删服务器接收客户端发送的镜像文件,再针对接收的镜像文件进行重复数据删除。若此时客户端传输的速度大于重删服务器删除镜像文件的速度,例如同时有大量客户端并发传输的情况下,容易造成系统瓶颈,占用客户端的资源,甚至可能导致数据的丢失。因此,如何消除系统瓶颈以提高重删速度成为技术开发人员关注的焦点。一种现有的方法主要针对客户端,通过限制客户端传输镜像文件的吞吐率以及并发客户端的个数来迎合重删服务器的吞吐率,以避免产生瓶颈。然而,单纯从限制客户端的角度解决系统的瓶颈会增加客户端的排队时间,并减少客户端传输的镜像文件的数量,对客户端传输镜像文件带来极大的不良影响,无法为客户端带来更好的服务。另一现有的解决方法则主要针对重删服务器,即提高重删服务器的硬件性能。第一方面通过使用固态硬盘或磁盘阵列而提升重删服务器中存储系统的吞吐率。第二方面通过提高处理器的性能以减少对比指纹的时间,减少延迟等。第三方面在提高处理器性能的情况下通过使用更高性能的网卡提高网络的传输速率,避免让客户端的传输速率影响重删的速度。虽然提升重删服务器的硬件性能能够在不耽误客户端传输镜像文件的情况下消除系统的瓶颈,但其硬件成本过高使诸多开发商望而却步。
技术实现思路
本专利技术实施例提供一种重复数据删除的方法及装置,能通过建立指纹库并对指纹库按照操作系统的类型进行划分,提高对比指纹的效率以加快重复数据删除的速度。本专利技术实施例第一方面提供一种重复数据删除的方法,包括:根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;将所述指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;获取所述第二镜像文件的数据块对应的指纹;[0011 ] 将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。结合本专利技术实施例第一方面的实现方式,在本专利技术实施例第一方面的第一种可能的实现方式中,所述第一镜像文件和所述第二镜像文件均携带类型指示信息,所述类型指示信息用于指示所述第一镜像文件和所述第二镜像文件的操作系统类型以及操作系统的版本类型。结合本专利技术实施例第一方面的第一种可能的实现方式,在本专利技术实施例第一方面的第二种可能的实现方式中,所述将所述指纹库划分为至少一个指纹模块,具体包括:根据所述操作系统类型将所述指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。结合本专利技术实施例第一方面的第二种可能的实现方式,在本专利技术实施例第一方面的第三种可能的实现方式中,所述按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元,具体包括:若任意两个版本的指纹的重复率大于第一预设值,则合并所述两个版本对应的指纹单元,并删除所述合并的指纹单元中重复的指纹,所述第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。结合本专利技术实施例第一方面的第二种或第三种中的任一种可能的实现方式,在本专利技术实施例第一方面的第四种可能的实现方式中,所述接收第二镜像文件,具体包括:接收所述第二镜像文件,根据所述第二镜像文件携带的所述类型指示信息识别所述第二镜像文件的操作系统类型以及所述操作系统的版本类型;所述调用与所述第二镜像文件的操作系统类型对应的指纹模块,具体包括:调用与所述第二镜像文件的操作系统类型对应的指纹模块,在所述调用出的指纹模块中,调出与所述第二镜像文件的版本类型对应的指纹单元。结合本专利技术实施例第一方面的第四种可能的实现方式,在本专利技术实施例第一方面的第五种可能的实现方式中,所述将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块,具体包括:根据所述调用出的指纹模块中与所述第二镜像文件的版本类型对应的指纹单元,创建多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较,删除与所述指纹单元中的指纹重复的指纹对应的数据块。结合本专利技术实施例第一方面的第五种可能的实现方式,在本专利技术实施例第一方面的第六种可能的实现方式中,创建所述线程的条件包括以下至少一种:所述CPU的使用率小于第二预设值,所述第二预设值是根据操作系统对所述CPU的使用率的需求而设定的;在所述多个线程将所述获取的指纹与所述指纹单元中的指纹一一进行比较时,所述第二镜像文件中未被比较的数据块的指纹的数量大于第三预设值,所述第三预设值是根据对比较指纹的速度的要求而设定的;在检测到无线程执行比较的操作时,存在至少一个未被比较的数据块的指纹。本专利技术实施例第二方面提供一种重复数据删除的装置,包括:建立模块,用于根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;划分模块,用于将所述建立模块建立的指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;调用模块,用于接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;获取模块,用于获取所述第二镜像文件的数据块对应的指纹;删除模块,用于将所述获取模块获取的指纹与所述调用模块调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。结合本专利技术实施例第二方面的实现方式,在本专利技术实施例第二方面的第一种可能的实现方式中,所述第一镜像文件和所述第二镜像文件均携带类型指示信息,所述类型指示信息用于指示所述第一镜像文件和所述第二镜像文件的操作系统类型以及操作系统的版本类型。结合本专利技术实施例第二方面的第一种可能的实现方式,在本专利技术实施例第二方面的第二种可能的实现方式中,所述划分模块包括:第一划分单元,用于根据所述操作系统类型将所述指纹库划分为至少一个指纹模块,将无法识别的操作系统类型的指纹归为公共指纹模块;第二划分单元,用于按照所述操作系统的版本类型将每个指纹模块划分为至少一个指纹单元。结合本专利技术实施例第二方面的第二种可能的实现方式,在本专利技术实施例第二方面的第三种可能的实现方式中,所述第二划分单元,具体用于:若任意两个版本的指纹的重复率大于第一预设值,则合并所述两个版本对应的指纹单元,并删除所述合并的指纹单元中重复的指纹,所述第一预设值是根据CPU的存储空间以及对比较指纹的速度的要求而设定的。结合本专利技术实施例第二方面的第本文档来自技高网
...
一种重复数据删除的方法及装置

【技术保护点】
一种重复数据删除的方法,其特征在于,包括:根据初始接收的第一镜像文件的数据块所对应的指纹建立指纹库,所述第一镜像文件为初始接收的虚拟机的镜像文件;将所述指纹库划分为至少一个指纹模块,每个指纹模块对应一种操作系统类型;接收第二镜像文件,调用与所述第二镜像文件的操作系统类型对应的指纹模块,所述第二镜像文件为在所述初始接收的虚拟机的镜像文件之后接收到的虚拟机的镜像文件;获取所述第二镜像文件的数据块对应的指纹;将所述获取的指纹与所述调用出的指纹模块中的指纹一一进行比较,删除与所述调用出的指纹模块中的指纹重复的指纹对应的数据块。

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

【专利技术属性】
技术研发人员:褚艳旭裘杰江云飞
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1