首页> 中国专利> 虚拟化环境中的数据去重复

虚拟化环境中的数据去重复

摘要

本发明涉及虚拟化环境中的数据去重复。在此描述了能够在虚拟化环境中对数据进行优化(即,去重复)的技术。例如,可将优化标记(又称,去重复标记)分配给虚拟化存储文件的相应区域。虚拟化存储文件是被配置为如下的文件:被安装成提供用于访问宿主文件的文件系统接口的盘或卷。根据这个示例,每一优化标记指示了相应区域要被优化(即,被去重复)到的程度。在另一个示例中,安装虚拟化存储文件以提供包括宿主文件的虚拟盘。根据这个示例,将优化标记分配给相应宿主文件。进一步根据这个示例,每一优化标记指示了相应宿主文件要被优化到的程度。

著录项

  • 公开/公告号CN102591592A

    专利类型发明专利

  • 公开/公告日2012-07-18

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201110436633.3

  • 申请日2011-12-13

  • 分类号G06F3/06;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人罗婷婷

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 06:12:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-24

    授权

    授权

  • 2015-08-19

    专利申请权的转移 IPC(主分类):G06F3/06 变更前: 变更后: 登记生效日:20150729 申请日:20111213

    专利申请权、专利权的转移

  • 2012-09-19

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20111213

    实质审查的生效

  • 2012-07-18

    公开

    公开

说明书

技术领域

本发明涉及数据优化技术,尤其涉及在虚拟化环境中进行数据去重复的方 法和系统。

背景技术

数据去重复,也称为数据优化,是在不损害原始数据的保真性或完整性的 情况下,减少需要存储在盘上或需要通过网络来进行传送的数据的物理字节量 的动作。数据去重复减少了存储数据所需的存储容量,并且可因此导致存储硬 件成本和数据管理成本方面的节省。数据去重复提供了用于处理快速增长的数 字化存储的数据的解决方案。

数据去重复可根据用于消除各持久存储文件之内或之间的重复的一项或 多项技术来执行。例如,根据一项技术,在一个或多个文件中出现多次的唯一 数据区域可被标识,并且这些所标识的唯一数据区域的单一副本可被物理地存 储。可存储对这些所标识的唯一数据区域(也称为数据“块”)的引用,引用指 示了包含这些唯一数据区域的各文件以及在这些文件中的位置。该技术一般称 为单一实例化。除了单一实例化以外,还可执行对数据的压缩。其他数据减少 技术也可被实现为数据去重复解决方案的一部分。

在本说明书中,经优化的数据指已由诸如块的单一实例化和压缩之类的一 种或多种数据去重复技术进行了优化或者去重复的数据。经优化的流指被去重 复后的流,或换言之,它们的数据已使用数据去重复技术来优化。

一旦数据被优化,就可以通过逆转优化效果(即对经优化的数据进行解优 化)来访问数据,例如通过执行关于经优化的数据的逆去重操作和/或解压缩操 作。然而,解优化导致了关于访问数据的延迟。更大的数据量导致更长的等待 时间。此外,每次访问数据时这种等待时间都可能发生,除非在存储设备上存 储用于访问的数据的解优化版本。另外,解优化通常消耗设备的大量资源(例 如存储器、中央处理单元(CPU)、磁盘I/O等),这可能负面地影响正在该 设备上运行的主工作负载。因此,频繁的解优化可能导致对设备资源的相对低 效率的利用。

存储虚拟化是抽象出物理存储中的逻辑存储的动作,使得可经由逻辑存储 来访问存储到该物理存储中的数据,而不考虑该物理存储的结构。例如,主机 设备可执行一个或多个虚拟机实例。根据这个示例,主机设备可对虚拟机实例 的盘进行仿真。经仿真的盘被存储成主机设备的物理存储上的文件。在另一个 示例中,主机设备可执行用于将虚拟盘呈现给主机设备的操作系统的驱动器。 根据这个示例,虚拟盘是通过安装存储在主机设备的物理存储上的文件来呈现 的。被安装来对盘进行仿真(即,呈现虚拟盘)的文件被称为虚拟化存储文件。

利用数据优化的系统可被表征为具有相对较低的硬件(例如,存储)成本 和/或相对较低的数据管理(例如,备份)成本。然而,当在虚拟化环境中执行 数据优化时通常会引起问题。例如,如果虚拟化存储文件中的数据被完全优化, 则与访问数据相关联的等待时间可以不恰当地使主机设备的性能降级,这在虚 拟化存储文件的区域被频繁访问时尤其严重。在另一实例中,由于存储在虚拟 盘中的一些文件的敏感性和/或这些文件所包括的数据的类型而对这些文件进 行优化可能是不想要的。在非虚拟化环境中,这个问题可通过应用基于这些文 件的策略来得到解决。然而,在虚拟化环境中,这些文件位于虚拟化存储文件 中,并且因此并不对主机设备可见。主机设备一般无法知晓是否虚拟化存储文 件的区域是不可优化的。

发明内容

在此描述了用于对虚拟化环境中的数据进行优化(即,去重复)等的各种 方法。例如,可将优化标记(又名,去重复标记)分配给虚拟化存储文件的相 应区域或分配给包括在作为安装虚拟化存储文件的结果来提供的虚拟盘中的 相应宿主文件。虚拟化存储文件是被配置为要作为提供用于访问宿主文件的文 件系统接口的盘或卷来安装的文件。根据这个示例,每一优化标记指示了相应 区域或相应宿主文件要被优化(即,被去重复)到的程度。

还描述了用于安装虚拟化存储文件来提供包括多个宿主文件的虚拟盘的 示例方法。每一宿主文件被映射至虚拟化存储文件的一个或多个区域。基于被 映射至每一区域的宿主文件的至少一个属性来将优化标记分配给该区域。每一 优化标记指示相应区域要被优化到的程度。每一区域被优化到由被分配给该区 域的相应优化标记所指示的程度。

还描述了用于安装虚拟化存储文件来提供包括宿主文件的虚拟盘的另一 示例方法。优化标记被分配给相应宿主文件。基于相应宿主文件的至少一个属 性来将每一优化标记分配给该宿主文件。每一优化标记指示相应宿主文件要被 优化到的程度。

还描述了用于将优化标记分配给虚拟化存储文件的相应区域的又一示例 方法。这些区域与虚拟化存储文件中的相应文件偏移量(又称,虚拟化存储文 件偏移量)相对应。基于被映射至与相应区域相对应的相应文件偏移量的宿主 文件的至少一个属性来将每一优化标记分配给相应区域。每一优化标记指示相 应区域要被优化到的程度。每一区域被优化到由被分配给该区域的相应优化标 记所指示的程度。

描述了包括安装模块、映射模块、分配模块和优化模块的示例系统。安装 模块被配置为安装虚拟化存储文件以提供包括多个宿主文件的虚拟盘。映射模 块被配置成将每一宿主文件映射至虚拟化存储文件的一个或多个区域。分配模 块被配制成基于被映射至每一区域的宿主文件的至少一个属性来将优化标记 分配给该区域。每一优化标记指示相应区域要被优化到的程度。优化模块被配 置为将每一区域优化到由被分配给该区域的相应优化标记所指示的程度。

描述了包括安装模块和分配模块的另一示例系统。安装模块被配置为安装 虚拟化存储文件来提供包括宿主文件的虚拟盘。分配模块被配置成将优化标记 分配给相应宿主文件。基于相应宿主文件的至少一个属性来将每一优化标记分 配给该宿主文件。每一优化标记指示相应宿主文件要被优化到的程度。

描述了包括分配模块和优化模块的又一个示例系统。分配模块被配置为将 优化标记分配给虚拟化存储文件的各相应区域。这些区域与虚拟化存储文件中 的相应文件偏移量相对应。基于被映射至与相应区域相对应的相应文件偏移量 的宿主文件的至少一个属性来将每一优化标记分配给该相应区域。每一优化标 记指示相应区域要被优化到的程度。优化模块被配置为将每一区域优化到由被 分配给该区域的相应优化标记所指示的程度。

提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步 描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要 特征,也不旨在用于限制所要求保护主题的范围。此外,注意到本发明不限于 在详细描述和/或本文的其它章节中所述的特定实施例。本文呈现这些实施例仅 用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术 人员将是显而易见的。

附图说明

本文结合的并且组成本说明书的一部分的附图示出了本发明的各实施例, 并且还与本描述一起用于解释所涉及的原理以及使相关领域的技术人员能够 实现和使用所公开的技术。

图1是根据一实施例的示例主机设备的框图。

图2、4、5和7-9描绘了根据各实施例的用于在虚拟化环境中优化数据的 示例方法的流程图。

图3是根据一实施例的图1中示出的优化器的示例实现的框图。

图6是根据一实施例的图3中示出的映射模块的示例实现的框图。

图10描绘了根据一实施例的用于将虚拟化存储文件偏移量映射至盘偏移 量的示例方法的流程图。

图11描绘了其中可实现各实施例的示例计算机。

通过下面的结合附图对本发明进行的详细说明,所公开的技术的特点和优 点将变得更加显而易见,在附图中,类似的附图标记在整个说明书中标识对应 的元素。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上 相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指 示。

具体实施方式

I.引言

以下详细描述参考示出本发明的示例性实施例的附图。但是,本发明的范 围不限于这些实施例,而是由所附权利要求书定义。因此,诸如所示实施例的 修改版本之类的在附图所示之外的实施例仍然由本发明所包含。

本说明书中对“一个实施例”、“实施例”、“示例实施例”等的参考指的是所 述实施例可包括具体的特征、结构或特点,但是每一实施例不一定包括该具体 的特征、结构或特点。此外,这些短语不一定指相同的实施例。此外,当结合 实施例描述具体特征、结构或特性时,应当理解在相关领域的技术人员的知识 范围内能够结合其他实施例来实现具体特征、结构或特性,无论是否被显式地 描述。

II.示例实施例

在此描述的各示例实施例能够在虚拟环境中对数据进行优化(即,去重 复)。在一些示例实施例中,将优化标记(又称,去重复标记)分配给虚拟化 存储文件的相应区域。虚拟化存储文件是被配置为作为提供用于访问宿主文件 的文件系统接口的盘或卷来安装的文件。根据这些示例实施例,每一优化标记 都指示相应区域要被优化(即,被去重复)到的程度。每一区域可被优化到由 被分配给该区域的相应优化标记所指示的程度。

在其他示例实施例中,虚拟化存储文件被安装来提供包括宿主文件的虚拟 盘。例如,安装虚拟化存储文件可使得在主机设备上执行的操作系统能够识别 与虚拟盘相关联的逻辑卷、宿主文件和/或文件系统。宿主文件是存储在基于虚 拟化存储文件的虚拟盘上的文件。根据这些示例实施例,优化标记被分配给相 应宿主文件以指示相应宿主文件要被优化到的程度。

可以按照任何合适的方式来定义优化标记。例如,第一优化标记可以指示 虚拟化存储文件的第一区域或第一宿主文件要被压缩而不是被去重复。第二优 化标记可以指示第二区域或第二宿主文件要被去重复而不是被压缩。第三优化 标记可以指示第三区域或第三宿主文件要被压缩并且被去重复。第四优化标记 可以指示第四区域或第四宿主文件既不会被压缩也不会被去重复。第五和第六 优化标记可以指示第五和第六区域或第五和第六宿主文件将使用相应第一和 第二压缩技术来被压缩。第七和第八优化标记可以指示第七和第八区域或第七 和第八宿主文件将使用相应第一和第二去重复技术来去重复等。

在示例实施例中,每一优化标记指示相应优化策略(即,去重复策略)或 全局策略内的相应优化级别(即,去重复级别)。优化策略是定义基于所指定 的标准对宿主文件或虚拟化存储文件的各区域进行优化的方式的一组规则。优 化策略可以定义多个优化级别。每一优化级别指示将要对满足所指定的标准的 相应子集的宿主文件或区域执行的一个或多个数据优化(即,数据去重复)技 术。例如,第一优化级别可以指示没有任何优化要对与第一优化级别相关联的 宿主文件或区域执行。宿主文件或区域要被优化的程度可随着与该宿主文件或 区域相关联的优化级别的增加而增加。根据这个示例,提高与宿主文件或区域 相关联的优化级别可以提高存储节省,但是可能消耗更多的计算资源和/或增加 对该宿主文件或区域执行的数据访问操作的等待时间。可以认识到,指示优化 策略的优化标记还可以指示由该优化策略定义的优化级别。

与用于在虚拟化环境中优化数据的传统技术比较,此处描述的示例技术具 有各种益处。例如,某些示例技术可以将虚拟化存储文件或各种宿主文件的各 个区域优化到不同的程度。一些示例技术可以部分地优化虚拟化存储文件,这 意味着虚拟化存储文件的一个或多个区域没有被优化。虚拟化存储文件的各区 域被优化到的程度可以基于各种因素中任何一个,这些因素包括但不限于:关 于这些区域或关于与这些区域相对应的宿主文件的访问模式、与访问这些区域 或与访问和这些区域相对应的宿主文件相关联的等待时间、存储在与这些区域 相对应的宿主文件中的数据的类型、宿主文件的分类、对宿主文件的预期使用、 与宿主文件相关联的其他特性等。一些示例技术可比常规技术消耗更少的时间 和/或主机设备的更少的资源。例如,一旦区域最初被优化了以后,利用增量优 化的示例技术就可减少用于与该区域有关的后续优化的时间和/或资源量。

图1是根据一实施例的示例主机设备200的框图。主机设备100是能够安 装虚拟化存储文件以提供虚拟盘的处理系统。处理系统的示例是包括至少一个 能够根据指令集操纵数据的处理器的系统。例如,处理系统可以是计算机、个 人数字助理等。

主机设备100包括存储102和优化器104。存储102存储虚拟化存储文件 106。虚拟化存储文件106包括多个区域108。可以基于与区域108相关联的访 问模式、虚拟化存储文件106中与存储在虚拟盘(例如,虚拟盘110)上的宿 主文件相对应的偏移量(又称虚拟化存储文件偏移量)、和/或任何其他合适的 因素来定义区域108。例如,访问模式可包括区域最近被访问的时间、区域被 访问的次数、区域被访问的频率、区域最近被修改的时间、区域被修改的次数、 区域被修改的频率等。每一区域中的位的数量可以基于各种因素中的任一个, 这些因素包括但不限于包括在与区域相对应的宿主文件中的位的平均数量、可 用于跟踪区域的存储器的量等。每一区域中的位的数量可以是相同的或不同 的。另外,每一区域中的位的数量可以是固定的或可变的。

用于说明目的且不旨在是限制性的,区域108被示为被排列成N个区域(标 记为R1、R2…RN)的向量。将认识到,虚拟化存储文件106可以包括任意合 适数量和/或配置的区域。

优化器104被配置为基于分配给虚拟化存储文件106的区域108或与区域 108相对应的宿主文件的优化标记(又称,去重复标记)来分别优化(即,去 重复)这些区域108或这些宿主文件。优化标记可基于宿主文件的属性和/或任 何其他合适的因素。宿主文件的示例属性包括但不限于:宿主文件的访问模式、 与访问宿主文件相关联的等待时间、关于宿主文件的试探、宿主文件的分类、 宿主文件的格式、宿主文件的类型、宿主文件的预期使用(例如,宿主文件是 否用于执行虚拟机112和/或宿主文件是否用于在系统引导操作期间对主机设 备100进行执行和/或宿主文件是否用于执行另一虚拟机)等。宿主文件的示例 格式包括但不限于PDF格式、Office(例如等)格式、格式、可扩展标记语言(XML)格式等。

在某些示例实施例中,优化器104能够安装虚拟化存储文件106以提供虚 拟盘110,如由箭头114所指示的。图1中示出的虚拟盘110被安装在被配置 为在主机设备100上执行的虚拟机112上。然而将认识到,虚拟盘110可被安 装到主机设备100而不是虚拟机112上。例如,主机设备100不必包括虚拟机 112。将虚拟化存储文件106安装到主机设备100或虚拟盘110上可以使优化 器104能够将虚拟盘110识别为存储而非文件。例如,安装虚拟化存储文件106 可以使优化器104能够为了优化区域108或包括在虚拟盘110中的宿主文件的 目的,确定与虚拟盘110相关联的逻辑卷和/或文件系统。下面参考图2-10详 细地描述用于优化区域(例如区域108)和/或宿主文件的技术。

图2描绘了根据一实施例的用于在虚拟化环境中对数据进行优化(即,去 重复)的示例方法的流程图。流程图200可以由例如图1所示的主机设备100 中的优化器104来执行。为了说明的目的,根据一实施例对图3中示出的优化 器300描述了流程图200,优化器300是优化器104的示例。如图3所示,优 化器300包括分配模块302、优化模块304、安装模块306、映射模块308、指 示符模块310、确定模块312和生成模块314。基于有关流程图200的讨论, 其他结构及操作的实施例对于相关领域的技术人员而言将是显而易见的。将认 识到,可在虚拟机112中实现分配模块302、优化模块304、安装模块306、映 射模块308、指示符模块310、确定模块312和/或生成模块314中的任何一个 或多个。

如图2所示,流程图200的方法在步骤202处开始。在步骤202,安装虚 拟化存储文件以提供包括多个宿主文件的虚拟盘。在示例实现中,安装模块306 安装虚拟化存储文件以提供虚拟盘。

在步骤204处,将每一宿主文件映射至虚拟化存储文件的一个或多个区域。 在一示例实现中,映射模块308将每一宿主文件映射至虚拟化存储文件的一个 或多个区域中。

在步骤206处,基于被映射至每一区域的宿主文件的至少一个属性来将优 化标记分配给该区域。每一优化标记指示相应区域要被优化(即,去重复)到 的程度。例如,每一优化标记可指示相应优化策略(即,去重复策略)和/或优 化策略中的优化级别(即,去重复级别)。优化标记可根据试探技术分配给每 一区域的,虽然示例实施例的范围并不限于这个方面。在示例实现中,分配模 块302将优化标记分配给各个区域。

在一示例实施例中,优化标记是基于以下各项来分配给每一区域的:被映 射至那个区域的宿主文件被访问的次数、被映射至那个区域的宿主文件被访问 的频率、被映射至那个区域的宿主文件最近被访问的时间、被映射至那个区域 的宿主文件被修改的次数、被映射至那个区域的宿主文件被修改的频率、被映 射至那个区域的宿主文件最近被修改的时间、与访问被映射至那个区域的宿主 文件相关联的等待时间、和/或其任何组合。对于任何合适的时间段(例如,由 于宿主文件的创建或在指定的时间间隔内),可以确定每一频率、时间、次数 和/或等待时间。

在另一示例实施例中,基于被映射至每一区域的宿主文件的分类来将优化 标记分配给这个区域。例如,宿主文件中的一个或多个可以被分类为“暂缓”, 这意味着这些宿主文件并不会因为要适应规则而被优化。在另一示例中,对每 一宿主文件的分类可反映出与该宿主文件相关联的优先级。根据本示例,相对 较大的优先级可对应于相对较低的优化程度,并且相对较低的优先级可对应于 相对较大的优化程度。在一个方面,宿主文件的优先级可基于宿主文件的创建 者的头衔或职衔。根据这个方面,和由公司的入门级工人所创建的宿主文件相 比,由该公司的副总经理所创建的宿主文件可以与更大的优先级相关联。

在又一示例实施例中,基于被映射至每一区域的宿主文件的格式来将优化 标记分配给这个区域。宿主文件的示例格式包括但不限于PDF格式、 Office(例如等)格式、格式、 可扩展标记语言(XML)格式等。

在另一示例实施例中,基于被映射至每一区域的宿主文件的预期使用来将 优化标记分配给这个区域。例如,可基于被映射到每一区域的宿主文件是否被 配置用于与主机设备(例如,主机设备100)和/或虚拟机(例如,虚拟机112) 有关的系统引导操作中来将优化标记分配给这个区域。在另一个示例中,可基 于被映射至每一区域的宿主文件是否用于执行虚拟机来将优化标记分配给这 个区域。

在又一示例实施例中,基于被映射至每一区域的宿主文件是否是临时文件 来将优化标记分配给这个区域。临时文件是在软件程序执行特定操作时,为了 释放存储器以用于其他目的和/或为了减轻或防止数据的丢失而被创建来临时 存储信息的文件。

在步骤208,将每一区域优化到(即,被去重复到)由被分配给该区域的 相应优化标记所指示的程度。在示例实现中,优化模块304优化每一区域。

在某些示例实施例中,可以不执行流程图200中的一个或多个步骤202、 204、206和/或208。此外,可以执行除步骤202、204、206和/或208以外的 步骤或代替这些步骤的步骤。

将认识到,优化器300可以不包括分配模块302、优化模块304、安装模 块306、映射模块308、指示符模块310、确定模块312和/或生成模块314中 的任何一个或多个。此外,优化器300可以包括除分配模块302、优化模块304、 安装模块306、映射模块308、指示符模块310、确定模块312和/或生成模块 314以外的和/或代替这些模块的模块。如下参考图8中的流程图800来描述指 示符模块310。如下参考图7中的流程图700来描述确定模块312和生成模块 314。

图4和5描绘了示出根据一实施例的用于实现图2中的流程图200的步骤 204的示例方式的流程图400和500。流程图400和500可由例如图3中所示 的优化器300中的映射模块308来执行。出于说明性的目的,根据一实施例, 流程图400和500是针对图6中所示的映射模块600来描述的,该映射模块600 是映射模块308的示例。如图6所示,映射模块600包括快照安装器602、卷 分析器604、偏移量映射器606和审阅模块608。基于有关流程图400和500 的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。

如图4所示,流程图400的方法在步骤402处开始。在步骤402中,安装 虚拟化存储文件的快照来提供根据文件系统来安排的、指示与相应宿主文件相 对应的盘偏移量的卷。虚拟化存储文件的快照被配置成表现为虚拟化存储文件 相对于时间的实例的的副本,虽然该快照并不需要一定是虚拟化存储文件的实 际副本。在一示例实现中,快照安装器602安装虚拟化存储文件的快照,以便 提供卷。

在一示例实施例中,快照被安装在主机设备上。例如,快照可被安装在主 机设备上,并且虚拟化存储文件可被安装在正在该主机设备上执行的虚拟机 上。在另一示例中,快照和虚拟化存储文件都可以被安装在主机设备上。

在步骤404处,对卷进行分析以确定盘偏移量。在一示例实现中,卷分析 器604对卷进行分析以确定盘偏移量。

在步骤406处,将盘偏移量映射至虚拟化存储文件中的相应文件偏移量。 文件偏移量与虚拟化存储文件的相应区域相对应。在一示例实现中,偏移量映 射器606将盘偏移量映射至虚拟化存储文件中的相应文件偏移量。

如图5所示,流程图500的方法在步骤502处开始。在步骤502中,审阅 文件系统的与虚拟盘相关联的盘上格式,以便获取(例如,定位和/或检索)指 示每一宿主文件与虚拟化存储文件中的一个或多个文件偏移量相对应的元数 据。文件偏移量与虚拟化存储文件的相应区域相对应。在一示例实现中,审阅 模块608审阅文件系统的与虚拟盘相关联的盘上格式,以获取元数据。

在一示例实施例中,文件系统是新技术文件系统(NTFS),且盘上格式 是与包括在NTFS中的主文件表(MFT)相关联的。MFT是包括每一宿主文件 (它包括在NTFS的卷中)的至少一个条目的文件。关于每一宿主文件的信息 包括但不限于大小、时戳和日戳、允许、数据内容、和/或前面提到的宿主文件 的元数据,该信息被存储在一个或多个MFT条目中或存储在MFT外部的由一 个或多个MFT条目来描述的空间中。因此,元数据可以从MFT获取或者从由 MFT来描述的空间处获取。

将认识到,映射模块600可以不包括快照安装器602、卷分析器604、偏 移量映射器606和/或审阅模块608中的一个或多个。此外,映射模块600可包 括除快照安装器602、卷分析器604、偏移量模块606和/或审阅模块608以外 或替换这些模块的模块。

在一些示例实施例中,虚拟化存储文件的每一区域被增量地优化到由被分 配给该区域的相应优化标记所指示的程度。例如,优化器(例如,优化器104) 可以监控区域来确定由于对这些区域的最近的优化而发生的关于这些区域的 改变。根据该示例,优化器可以创建包括这些改变的差别文件(又称,差异文 件)。例如,优化器可以在周期性的基础上(例如,根据指定的时间表)对区 域进行优化。对于每一连续的时间段,该优化器可优化单独的差别文件,以包 括在该时间段期间发生的改变。

例如,图7描绘了根据一实施例的用于使用一个或多个差异文件来对数据 进行优化(即,去重复)的示例方法的流程图700。流程图700可以由例如图 1中示出的主机设备100的优化器104来执行。为了说明的目的,流程图700 是参考图3中示出的优化器300来描述的。而且,基于有关流程图700的讨论, 其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。

如图7所示,流程图700的方法在步骤702处开始。在步骤702,将虚拟 化存储文件的区域优化到由被分配给该区域的优化标记所指示的程度,以提供 该区域的经优化的表示。在一示例实现中,优化模块304对虚拟化存储文件的 区域进行优化。

在步骤704,确定由于对区域进行优化而发生的关于该区域的一个或多个 改变。在一示例实现中,确定模块312确定一个或多个改变。

在步骤706,生成指定一个或多个改变的第一差异文件。例如,对区域进 行优化以提供该区域的经优化的表示可以触发第一差异文件的生成。在一示例 实现中,生成模块314生成第一差异文件。

在步骤708,将第一差异文件优化到由优化标记所指示的程度,而不将该 区域的经优化的表示优化到由该优化标记所指示的程度。在示例实现中,优化 模块304对第一差异文件进行优化。

在步骤710处,确定由于对第一差异文件进行优化而发生的关于该区域的 至少一个改变。在一示例实现中,确定模块312确定该至少一个改变。

在步骤712,生成指定该至少一个改变的第二差异文件。例如,对第一差 异文件进行优化可触发第二差异文件的生成。在一示例实现中,生成模块314 生成第二差异文件。

在步骤714,将第二差异文件优化到由优化标记所指示的程度,而不将该 区域的经优化的表示优化到由该优化标记所指示的程度,并且不将第一差异文 件重新优化到由该优化标记所指示的程度。在一示例实现中,优化模块304优 化第二差异文件。

在某些示例实施例中,可不执行流程图700的一个或多个步骤702、704、 706、708、710、712和/或714。而且,可执行除了步骤702、704、706、708、 710、712和/或714之外的或替换这些步骤的步骤。例如,在步骤714的完成 以后,流程图700的方法可继续,以生成和优化指定该区域上发生的相应改变 的连续的差异文件。例如,可以确定由于最近的优化而发生的改变,可生成指 定这些改变的另一差异文件,并且该差异文件可被优化到由优化标记所指示的 程度,而不用对之前生成的差异文件中的任何一个进行优化,也不用将该区域 的经优化的表示优化到由所述优化标记所指示的程度。可以对连续的差异文件 执行这些步骤,直到流程图700的方法不再继续。区域的经优化的表示以及相 应差异文件可被组合,以提供区域的经更新的经优化的表示,该表示结合了由 这些差异文件所指定的改变。

图8描绘了示出根据一实施例的用于实现以上参考图2来描述的方法的示 例方式的流程图800。流程图800可以由例如图1所示的主机设备100的优化 器104来执行。为了说明的目的,流程图800是参考图3中示出的优化器300 来描述的。基于有关流程图800的讨论,其他结构及操作的实施例对于相关领 域的技术人员将是显而易见的。

如图8所示,流程图800的方法在步骤802处开始。在步骤802中,将虚 拟化存储文件安装在可访问主机设备的虚拟机上,以提供包括多个宿主文件的 虚拟盘。例如,虚拟机可在主机设备上执行。在一示例实现中,安装模块306 将虚拟化存储文件安装在正在主机设备上执行的虚拟机上。根据这个示例实 现,安装模块306被实现在主机设备(例如,主机设备100)中。

在步骤804中,由虚拟机使用文件系统应用编程接口和卷应用编程接口将 每一宿主文件映射至虚拟化存储文件的一个或多个区域。应用编程接口(API) 是由软件模块实现的用于使该软件模块能够与其他软件模块进行交互的接口。 文件系统API是操作系统可以通过其与文件系统进行交互的API。卷API是操 作系统可以通过其与和物理盘或虚拟盘相关联的卷进行交互的API。在一示例 实现中,映射模块308将每一宿主文件映射至虚拟化存储文件的一个或多个区 域。根据这个示例实现,映射模块308被实现在虚拟机(例如,虚拟机112) 中。

在步骤806处,基于被映射至每一区域的宿主文件的至少一个属性来将优 化标记分配给该区域。每一优化标记指示相应区域要被优化(即,被去重复) 到的程度。在一示例实现中,分配模块302将优化标记分配给相应区域。根据 这个示例实现,分配模块302被实现在虚拟机中。

在步骤808,将优化指示符(又称,去重复指示符)从虚拟机提供给主机 设备。优化指示符指定优化标记(即,去重复标记)并包括关于每一宿主文件 到相应一个或多个区域的映射的信息。在一示例实现中,指示符模块310将优 化指示符从虚拟机提供到主机设备。根据这个示例实现,指示符模块310被实 现在虚拟机中。

在一示例实施例中,优化指示符并不包括关于每一宿主文件到相应一个或 多个区域的映射的信息。例如,可以不执行步骤804。根据这个示例,关于每 一宿主文件到相应一个或多个区域的映射的信息可以不存在或者可以是不可 访问的。

在步骤810,由主机设备基于优化指示符将每一区域优化(即,去重复) 到由被分配给该区域的相应优化标记所指示的程度。在一示例实现中,优化模 块304根据优化指示符对每一区域进行优化。根据这个示例实现,优化模块304 被实现在主机设备中。

在某些示例实施例中,可以不执行流程图800的一个或多个步骤802、804、 806、808和/或810。此外,可以执行除步骤802、804、806、808和/或810以 外的或代替这些步骤的步骤。

图9描绘了根据一实施例的用于在虚拟化环境中对数据进行优化(即,去 重复)的另一个示例方法的流程图900。流程图900可以由例如图1所示的主 机设备100的优化器104来执行。为了说明的目的,流程图900是参考图3中 示出的优化器300来描述的。基于有关流程图900的讨论,其他结构及操作的 实施例对于相关领域的技术人员将是显而易见的。

如图9所示,流程图900的方法在步骤902处开始。在步骤902,安装虚 拟化存储文件以提供包括宿主文件的虚拟盘。在一示例实现中,安装模块306 安装虚拟化存储文件。

在步骤904,将优化标记(又称,去重复标记)分配给相应宿主文件。每 一优化标记是基于相应宿主文件的至少一个属性而被分配给该宿主文件的。每 一优化标记指示相应宿主文件要被优化(即,去重复)到的程度。可以根据试 探技术来将优化标记分配给相应区域,虽然示例实施例的范围并不限于这个方 面。在一示例实现中,分配模块302将优化标记分配给相应宿主文件。

在示例实施例中,基于如下各项来将优化标记分配给每一宿主文件:宿主 文件被访问的次数、宿主文件被访问的频率、宿主文件最近被访问的时间、宿 主文件被修改的次数、宿主文件被修改的频率、宿主文件最近被修改的时间、 与访问宿主文件相关联的等待时间、宿主文件的格式、是否宿主文件被配置为 用于与主机设备(例如,主机设备100)和/或虚拟机(例如,虚拟机112)有 关的系统引导操作中、是否宿主文件112被配置成用于执行虚拟机、是否宿主 文件是临时文件、和/或其任何组合。

在步骤906,将每一宿主文件优化(即,去重复)到由被分配给该宿主文 件的相应优化标记所指示的程度。在一示例实现中,优化模块304优化每一宿 主文件。

在某些示例实施例中,可以不执行流程图900的一个或多个步骤902、904 和/或906。此外,可以执行除步骤902、904、和/或906以外的或代替这些步 骤的步骤。

图10描绘了根据一实施例的用于将虚拟化存储文件偏移量映射至盘偏移 量的示例方法的流程图1000。流程图1000可以由例如图1所示的主机设备100 的优化器104来执行。为了说明的目的,流程图1000是参考图3中示出的优 化器300来描述的。基于有关流程图1000的讨论,其他结构及操作的实施例 对于相关领域的技术人员将是显而易见的。

如图10所示,流程图1000的方法在步骤1002处开始。在步骤1002,根 据碎片整理操作确定与宿主文件的各个片段相关联的盘偏移量被改变成相应 的经修正的盘偏移量。盘偏移量对应于与虚拟化存储文件的相应区域相关联的 相应虚拟化存储文件偏移量。例如,碎片整理操作可改变文件系统元数据,以 反映盘偏移量被改变成相应的经修正的盘偏移量。在一示例实现中,映射模块 308确定盘偏移量被改变成相应的经修正的盘偏移量。例如,映射模块308可 监控宿主文件的片段的移动来确定盘偏移量被改变成相应的经修正的盘偏移 量。

在步骤1004,将对虚拟化存储文件偏移量的映射从相应的盘偏移量改变成 相应的经修正的盘偏移量。在一示例实现中,映射模块308将虚拟化存储文件 的映射从相应盘偏移量改变成相应的经修正的盘偏移量。

在步骤1006,为了考虑经修正的盘偏移量,修改指示虚拟化存储文件的区 域与对相应区域的经优化的表示的引用的关联的元数据,而不重新优化虚拟化 存储文件的区域。例如,虚拟化存储文件的去重复可涉及“块化”该虚拟化存 储文件,以提供对该虚拟化存储文件的相应区域的经优化的表示的引用。这种 引用可称为“块”。根据这个示例,去重复可创建将虚拟化存储文件的区域链 接到其相应块的元数据。碎片整理改变这些区域在虚拟化存储文件中的位置。 虚拟化存储文件偏移量因此改变。根据这个示例,如步骤1006中所阐述地, 元数据可因此被修改。在一些实施例中,通过修改指示各区域与各引用的关联 的元数据可避免对各区域进行重新优化以考虑经修正的盘偏移量,这对于相关 领域的技术人员是显而易见的。在一示例实现中,优化模块304修改指示区域 与引用的关联的元数据。

分配模块302、优化模块304、安装模块306、映射模块308、指示符模块 310、确定模块312、生成模块314、快照安装器602、卷分析器604、偏移量 映射器606和审阅模块608可被实现在硬件、软件、固件或其任何组合中。例 如,分配模块302、优化模块304、安装模块306、映射模块308、指示符模块 310、确定模块312、生成模块314、快照安装器602、卷分析器604、偏移量 映射器606、和/或审阅模块608可被实现成被配置为在一个或多个处理器中执 行的计算机程序代码。在另一示例中,分配模块302、优化模块304、安装 模块306、映射模块308、指示符模块310、确定模块312、生成模块314、快 照安装器602、卷分析器604、偏移量映射器606、和/或审阅模块608可被实 现成硬件逻辑/电子电路。

图11描绘其中可实现各实施例的示例计算机1100。图1中示出的主机设 备100(或图3和图6中示出的主机设备的任何一个或多个子组件)可以用计 算机100来实现,该主机设备包括计算机1100的一个或多个特征和/或可选的 特征。计算机1100可以是例如常规个人计算机、移动计算机或工作站形式的 通用计算设备,或者,计算机1100可以是特殊用途的计算设备。此处所提供 的对计算机1100的描述只是为了说明,并不是限制性的。实施例也可以在相 关领域的技术人员所知的其它类型的计算机系统中实现。

如图11所示,计算机1100包括处理单元1102、系统存储器1104,以及 将包括系统存储器1104的各种系统组件耦合到处理单元1102的总线1106。系 统总线1106表示若干类型的总线结构中的任何一种总线结构的一个或多个, 包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总 线体系结构中的任何一种的处理器或局部总线。系统存储器1104包括只读存 储器(ROM)1108和随机存取存储器(RAM)1110。基本输入/输出系统1112 (BIOS)存储在ROM 1108中。

计算机1100还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器 1114、用于读或写可移动磁盘1118的磁盘驱动器1116、以及用于读或写诸如 CD ROM、DVD ROM或其他光介质之类的可移动光盘1122的光盘驱动器 1120。硬盘驱动器1114、磁盘驱动器1116,以及光驱动器1120分别通过硬盘 驱动器接口1124、磁盘驱动器接口1126,以及光学驱动器接口1128连接到系 统总线1106。驱动器以及它们相关联的计算机可读存储介质为计算机提供了对 计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描 述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视 频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型 的计算机可读存储介质来存储数据。

数个程序模块可被存储在硬盘、磁盘、光盘、ROM,或RAM上。这些程 序包括操作系统1130、一个或多个应用程序1132、其他程序模块1134,以及 程序数据1136。应用程序1132或程序模块1134可包括例如用于实现如在此描 述的如下各项的计算机程序逻辑:分配模块302、优化模块304、安装模块306、 映射模块308、指示符模块310、确定模块312、生成模块314、快照安装器602、 卷分析器604、偏移量映射器606、审阅模块608、流程图200(包括流程图200 的任何步骤)、流程图400(包括流程图400的任何步骤)、流程图500(包 括流程图500的任何步骤)、流程图700(包括流程图700的任何步骤)、流 程图800(包括流程图800的任何步骤)、流程图900(包括流程图900的任 何步骤)和/或流程图1000(包括流程图1000的任何步骤)。

用户可以通过诸如键盘1138和定点设备1140之类的输入设备向计算机 1100中输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏 手柄、圆盘式卫星天线、扫描仪等。这些及其他输入设备常常通过耦合到总线 1106的串行端口接口1142连接到处理单元1102,但是,也可以通过其他接口, 诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。

显示设备1144(例如监视器)也通过诸如视频适配器1146之类的接口连 接到总线1106。除了显示设备1144之外,计算机1100还可包括其他外围输出 设备(未示出),如扬声器和打印机。

计算机1100通过网络接口或适配器1150、调制解调器1152、或用于通过 网络建立通信的其他装置连接到网络1148(例如,因特网)。调制解调器1152 (可以是内置的或外置的),通过串行端口接口1142连接到系统总线1106。

如此处所用的,术语“计算机程序介质”以及“计算机可读介质”被用于泛指 介质,诸如与硬盘驱动器1114相关联的硬盘、可移动磁盘1118、可移动光盘 1122,以及诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器 (ROM)之类的其他介质。这些计算机可读存储介质与通信介质相区别且不重 叠。通信介质通常在诸如载波等已调制数据信号中承载计算机可读指令、数据 结构、程序模块或者其它数据。术语“已调制数据信号”是指具有以在信号中 编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制, 通信介质包括无线介质,如声学、RF、红外和其它无线介质。示例实施例也针 对这些通信介质。

如上文所指示的,计算机程序和模块(包括应用程序1132及其他程序模 块1134)可被存储在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程 序也可以通过网络接口1150或串行端口接口1142来接收。这些计算机程序在 由应用程序执行或加载时使得计算机1100能够实现此处所讨论的实施例的特 征。相应地,这样的计算机程序表示计算机1100的控制器。

示例实施例还涉及包括存储在任何计算机可用介质上的软件(例如计算机 可读指令)的计算机程序产品。这样的软件,当在一个或多个数据处理设备中 执行时,使数据处理设备如此处所描述的那样操作。实施例可使用现在已知或 将来知晓的任何计算机可使用或计算机可读介质。计算机可读介质的例子包括 但不限于存储设备,诸如RAM、硬盘、软盘、CD ROM、DVD ROM、Zip盘、 磁带、磁存储设备、光存储设备、基于MEMS的存储设备、基于纳米技术的存 储设备,等等。

III.结论

虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限 制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离 本发明的精神和范围。因此,本发明的宽度和范围不应被上述所公开的示例性 实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号