CN102591592A - 虚拟化环境中的数据去重复 - Google Patents

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

Info

Publication number
CN102591592A
CN102591592A CN2011104366333A CN201110436633A CN102591592A CN 102591592 A CN102591592 A CN 102591592A CN 2011104366333 A CN2011104366333 A CN 2011104366333A CN 201110436633 A CN201110436633 A CN 201110436633A CN 102591592 A CN102591592 A CN 102591592A
Authority
CN
China
Prior art keywords
file
optimized
mark
host
virtual storage
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.)
Granted
Application number
CN2011104366333A
Other languages
English (en)
Other versions
CN102591592B (zh
Inventor
R·卡拉赫
P·A·奥尔泰安
C·G·特奥多雷斯库
M·J·迪克森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102591592A publication Critical patent/CN102591592A/zh
Application granted granted Critical
Publication of CN102591592B publication Critical patent/CN102591592B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • G06F16/125File system administration, e.g. details of archiving or snapshots using management policies characterised by the use of retention policies
    • 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/188Virtual file 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/064Management of blocks
    • 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/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

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)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

虚拟化环境中的数据去重复
技术领域
本发明涉及数据优化技术,尤其涉及在虚拟化环境中进行数据去重复的方法和系统。
背景技术
数据去重复,也称为数据优化,是在不损害原始数据的保真性或完整性的情况下,减少需要存储在盘上或需要通过网络来进行传送的数据的物理字节量的动作。数据去重复减少了存储数据所需的存储容量,并且可因此导致存储硬件成本和数据管理成本方面的节省。数据去重复提供了用于处理快速增长的数字化存储的数据的解决方案。
数据去重复可根据用于消除各持久存储文件之内或之间的重复的一项或多项技术来执行。例如,根据一项技术,在一个或多个文件中出现多次的唯一数据区域可被标识,并且这些所标识的唯一数据区域的单一副本可被物理地存储。可存储对这些所标识的唯一数据区域(也称为数据“块”)的引用,引用指示了包含这些唯一数据区域的各文件以及在这些文件中的位置。该技术一般称为单一实例化。除了单一实例化以外,还可执行对数据的压缩。其他数据减少技术也可被实现为数据去重复解决方案的一部分。
在本说明书中,经优化的数据指已由诸如块的单一实例化和压缩之类的一种或多种数据去重复技术进行了优化或者去重复的数据。经优化的流指被去重复后的流,或换言之,它们的数据已使用数据去重复技术来优化。
一旦数据被优化,就可以通过逆转优化效果(即对经优化的数据进行解优化)来访问数据,例如通过执行关于经优化的数据的逆去重操作和/或解压缩操作。然而,解优化导致了关于访问数据的延迟。更大的数据量导致更长的等待时间。此外,每次访问数据时这种等待时间都可能发生,除非在存储设备上存储用于访问的数据的解优化版本。另外,解优化通常消耗设备的大量资源(例如存储器、中央处理单元(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进行执行和/或宿主文件是否用于执行另一虚拟机)等。宿主文件的示例格式包括但不限于
Figure BSA00000644610200071
PDF格式、
Figure BSA00000644610200072
Office(例如 等)格式、
Figure BSA00000644610200075
格式、可扩展标记语言(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将优化标记分配给各个区域。
在一示例实施例中,优化标记是基于以下各项来分配给每一区域的:被映射至那个区域的宿主文件被访问的次数、被映射至那个区域的宿主文件被访问的频率、被映射至那个区域的宿主文件最近被访问的时间、被映射至那个区域的宿主文件被修改的次数、被映射至那个区域的宿主文件被修改的频率、被映射至那个区域的宿主文件最近被修改的时间、与访问被映射至那个区域的宿主文件相关联的等待时间、和/或其任何组合。对于任何合适的时间段(例如,由于宿主文件的创建或在指定的时间间隔内),可以确定每一频率、时间、次数和/或等待时间。
在另一示例实施例中,基于被映射至每一区域的宿主文件的分类来将优化标记分配给这个区域。例如,宿主文件中的一个或多个可以被分类为“暂缓”,这意味着这些宿主文件并不会因为要适应规则而被优化。在另一示例中,对每一宿主文件的分类可反映出与该宿主文件相关联的优先级。根据本示例,相对较大的优先级可对应于相对较低的优化程度,并且相对较低的优先级可对应于相对较大的优化程度。在一个方面,宿主文件的优先级可基于宿主文件的创建者的头衔或职衔。根据这个方面,和由公司的入门级工人所创建的宿主文件相比,由该公司的副总经理所创建的宿主文件可以与更大的优先级相关联。
在又一示例实施例中,基于被映射至每一区域的宿主文件的格式来将优化标记分配给这个区域。宿主文件的示例格式包括但不限于
Figure BSA00000644610200091
PDF格式、Office(例如
Figure BSA00000644610200093
等)格式、
Figure BSA00000644610200094
格式、可扩展标记语言(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.结论
虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离本发明的精神和范围。因此,本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。

Claims (15)

1.一种方法,包括:
将多个优化标记分配给虚拟化存储文件(106)的多个相应区域(108),所述多个区域(108)与所述虚拟化存储文件(106)中的多个相应虚拟化存储文件偏移量相对应,每一优化标记是基于被映射至与相应区域相对应的相应虚拟化存储文件偏移量的宿主文件的至少一个属性而被分配给所述区域的,每一优化标记指示所述相应区域要被优化到的程度;以及
将每一区域优化到由被分配给该区域的相应优化标记所指示的程度。
2.如权利要求1所述的方法,其特征在于,优化每一区域包括:
将多个区域中的第一区域优化到由被分配给所述第一区域的第一优化标记所指示的程度,以提拱所述第一区域的经优化的表示;以及
其中所述方法还包括:
响应于对所述第一区域进行优化,确定由于对所述第一区域进行优化而发生的有关所述第一区域的一个或多个改变;
生成指定所述一个或多个改变的差异文件;以及
将所述差异文件优化到由所述第一优化标记所指示的程度,而不将所述第一区域的经优化的表示优化到由所述第一优化标记所指示的程度。
3.如权利要求2所述的方法,其特征在于,还包括:
响应于对所述差异文件进行优化,确定由于对所述差异文件进行优化而发生的有关所述第一区域的至少一个改变;
生成指定所述至少一个改变的第二差异文件;以及
将所述第二差异文件优化到由所述第一优化标记所指示的程度,而不将所述第一区域的所述经优化的表示优化到由所述第一优化标记所指示的程度,且不将所述第一差异文件重新优化到由所述第一优化标记所指示的程度。
4.如权利要求1所述的方法,其特征在于,分配所述多个优化标记包括:
基于如下各项中的至少一项来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件被访问的次数,或者被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件被修改的次数。
5.如权利要求1所述的方法,其特征在于,分配所述多个优化标记包括:
基于如下各项中的至少一项来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件最近被访问的时间,或者被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件最近被修改的时间。
6.如权利要求1所述的方法,其特征在于,分配所述多个优化标记包括:
基于如下各项中的至少一项来将每一优化标记分配给所述相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件被访问的频率,或者被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件被修改的频率。
7.如权利要求1所述的方法,其特征在于,分配所述多个优化标记包括:
基于以下内容来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件的分类。
8.如权利要求1所述的方法,其特征在于,分配所述多个优化标记包括:
基于以下内容来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件的格式。
9.如权利要求1所述的方法,其特征在于,分配所述多个优化标记包括:
基于以下内容来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件是否被配置为用于系统引导操作。
10.一种系统,包括:
分配模块(302),它被配置为将多个优化标记分配给虚拟化存储文件(106)的多个相应区域(108),所述多个区域(108)与所述虚拟化存储文件(106)中的多个相应虚拟化存储文件偏移量相对应,每一优化标记是基于被映射至与相应区域相对应的相应虚拟化存储文件偏移量的宿主文件的至少一个属性而被分配给该区域的,每一优化标记指示相应区域要被优化到的程度;以及
优化模块(304),它被配置为将每一区域优化到由被分配给该区域的相应优化标记所指示的程度。
11.如权利要求10所述的系统,其特征在于,所述优化器被配置成将所述多个区域的第一区域优化到由被分配给所述第一区域的第一优化标记所指示的程度,以提供所述第一区域的经优化的表示;
其中所述系统还包括:
确定模块,它被配置为确定由于对所述第一区域的优化而发生的关于所述第一区域的一个或多个改变;以及
生成模块,它被配置为生成指定所述一个或多个改变的差异文件;以及
其中,所述优化器还被配置为将所述差异文件优化到由所述第一优化标记所指示的程度,而不将所述第一区域的经优化的表示优化到由所述第一优化标记所指示的程度。
12.如权利要求10所述的系统,其特征在于,所述分配模块被配置为根据试探技术基于被映射至与相应区域相对应的相应虚拟化存储文件的宿主文件的至少一个属性来将每一优化标记分配给该区域。
13.如权利要求10所述的系统,其特征在于,所述分配模块被配置为基于以下内容来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件的分类。
14.如权利要求10所述的系统,其特征在于,还包括:
偏移量映射器,它被配置为根据碎片整理操作来确定与所述宿主文件的多个相应片段相关联的多个盘偏移量被改变成多个相应的经修正的盘偏移量,所述多个盘偏移量对应于多个相应虚拟化存储文件偏移量,所述偏移量映射器还被配置为将多个虚拟化文件偏移量的映射从多个相应盘偏移量改变为多个相应的经修正的盘偏移。
15.如权利要求10所述的系统,其特征在于,所述分配模块被配置为基于以下各项中的至少一项来将每一优化标记分配给相应区域:被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件最近被访问的时间,或者被映射至与该区域相对应的相应虚拟化存储文件偏移量的宿主文件最近被修改的时间。
CN201110436633.3A 2010-12-14 2011-12-13 虚拟化环境中的数据去重复 Active CN102591592B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/967,984 2010-12-14
US12/967,984 US8959293B2 (en) 2010-12-14 2010-12-14 Data deduplication in a virtualization environment

Publications (2)

Publication Number Publication Date
CN102591592A true CN102591592A (zh) 2012-07-18
CN102591592B CN102591592B (zh) 2017-05-24

Family

ID=46200610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110436633.3A Active CN102591592B (zh) 2010-12-14 2011-12-13 虚拟化环境中的数据去重复

Country Status (4)

Country Link
US (3) US8959293B2 (zh)
EP (1) EP2652625B1 (zh)
CN (1) CN102591592B (zh)
WO (1) WO2012082664A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678473A (zh) * 2012-09-24 2014-03-26 国际商业机器公司 用于在去重虚拟介质中进行高效文件归档回收的方法和系统
CN106383670A (zh) * 2016-09-21 2017-02-08 华为技术有限公司 一种数据处理方法及存储设备
CN108073521A (zh) * 2016-11-11 2018-05-25 深圳市创梦天地科技有限公司 一种数据去重的方法和系统

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332570B1 (en) * 2008-09-30 2012-12-11 Symantec Corporation Methods and systems for defragmenting virtual machine prefetch data on physical storage
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US20120216052A1 (en) * 2011-01-11 2012-08-23 Safenet, Inc. Efficient volume encryption
US8909761B2 (en) * 2011-02-08 2014-12-09 BlueStripe Software, Inc. Methods and computer program products for monitoring and reporting performance of network applications executing in operating-system-level virtualization containers
US9047313B2 (en) * 2011-04-21 2015-06-02 Red Hat Israel, Ltd. Storing virtual machines on a file system in a distributed environment
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US9417891B2 (en) * 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
US9158468B2 (en) * 2013-01-02 2015-10-13 International Business Machines Corporation High read block clustering at deduplication layer
US9606910B2 (en) * 2013-01-17 2017-03-28 Hitachi, Ltd. Method and apparatus for data reduction
US8732135B1 (en) 2013-03-01 2014-05-20 Storagecraft Technology Corporation Restoring a backup from a deduplication vault storage
US8874527B2 (en) 2013-03-01 2014-10-28 Storagecraft Technology Corporation Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US8738577B1 (en) 2013-03-01 2014-05-27 Storagecraft Technology Corporation Change tracking for multiphase deduplication
US9729659B2 (en) * 2013-03-14 2017-08-08 Microsoft Technology Licensing, Llc Caching content addressable data chunks for storage virtualization
CN103544047B (zh) 2013-10-25 2017-01-04 华为技术有限公司 云系统数据管理方法
US8751454B1 (en) * 2014-01-28 2014-06-10 Storagecraft Technology Corporation Virtual defragmentation in a deduplication vault
US10089011B1 (en) * 2014-11-25 2018-10-02 Scale Computing Zero memory buffer copying in a reliable distributed computing system
US9934236B2 (en) * 2015-02-23 2018-04-03 International Business Machines Corporation Streamlining data deduplication
US9696931B2 (en) 2015-06-12 2017-07-04 International Business Machines Corporation Region-based storage for volume data and metadata
US11176096B2 (en) * 2015-08-24 2021-11-16 International Business Machines Corporation File system for genomic data
CN106293519B (zh) * 2016-07-29 2019-05-10 浪潮(北京)电子信息产业有限公司 一种磁盘存储管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244577A1 (en) * 2007-03-29 2008-10-02 Vmware, Inc. Software delivery for virtual machines
CN101663654A (zh) * 2007-04-23 2010-03-03 微软公司 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
WO2010103569A1 (en) * 2009-03-11 2010-09-16 Hitachi, Ltd. Storage system and control method for the same, and program

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7669032B2 (en) 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
EP1875394B1 (en) 2005-04-25 2011-06-08 Network Appliance, Inc. System and method for caching network file systems
US7636801B1 (en) 2005-06-20 2009-12-22 Symantec Operating Corporation Coordination of quality of service in a multi-layer virtualized storage environment
US20070088690A1 (en) * 2005-10-13 2007-04-19 Xythos Software, Inc. System and method for performing file searches and ranking results
US7783645B2 (en) 2005-12-14 2010-08-24 Siemens Aktiengesellschaft Methods and apparatus to recall context relevant information
US7921077B2 (en) 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
US8165177B2 (en) * 2006-12-22 2012-04-24 Lenovo (Singapore) Pte. Ltd. System and method for hybrid virtual machine monitor file system operations
US7739312B2 (en) 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
JP5026213B2 (ja) * 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US20100070544A1 (en) 2008-09-12 2010-03-18 Microsoft Corporation Virtual block-level storage over a file system
US20100082700A1 (en) 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
US8131687B2 (en) 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US8447740B1 (en) * 2008-11-14 2013-05-21 Emc Corporation Stream locality delta compression
US20100161909A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US8225138B2 (en) * 2009-03-31 2012-07-17 Lenovo (Singapore) Pte. Ltd. High-speed recovery for computing systems
US8230208B2 (en) * 2009-04-20 2012-07-24 Intel Corporation Booting an operating system of a system using a read ahead technique
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
US8799223B1 (en) * 2011-05-02 2014-08-05 Symantec Corporation Techniques for data backup management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244577A1 (en) * 2007-03-29 2008-10-02 Vmware, Inc. Software delivery for virtual machines
CN101663654A (zh) * 2007-04-23 2010-03-03 微软公司 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
WO2010103569A1 (en) * 2009-03-11 2010-09-16 Hitachi, Ltd. Storage system and control method for the same, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678473A (zh) * 2012-09-24 2014-03-26 国际商业机器公司 用于在去重虚拟介质中进行高效文件归档回收的方法和系统
CN103678473B (zh) * 2012-09-24 2017-04-12 国际商业机器公司 用于在去重虚拟介质中进行高效文件归档回收的方法和系统
CN106383670A (zh) * 2016-09-21 2017-02-08 华为技术有限公司 一种数据处理方法及存储设备
CN106383670B (zh) * 2016-09-21 2020-02-14 华为技术有限公司 一种数据处理方法及存储设备
CN108073521A (zh) * 2016-11-11 2018-05-25 深圳市创梦天地科技有限公司 一种数据去重的方法和系统

Also Published As

Publication number Publication date
EP2652625A2 (en) 2013-10-23
US20150121032A1 (en) 2015-04-30
EP2652625A4 (en) 2017-07-26
US10073854B2 (en) 2018-09-11
CN102591592B (zh) 2017-05-24
US20160267100A1 (en) 2016-09-15
US20120151177A1 (en) 2012-06-14
WO2012082664A2 (en) 2012-06-21
US9342244B2 (en) 2016-05-17
US8959293B2 (en) 2015-02-17
EP2652625B1 (en) 2020-02-26
WO2012082664A3 (en) 2012-09-07

Similar Documents

Publication Publication Date Title
CN102591592A (zh) 虚拟化环境中的数据去重复
US9256542B1 (en) Adaptive intelligent storage controller and associated methods
US9778946B2 (en) Optimized copy of virtual machine storage files
CN103858116B (zh) I/o设备及计算主机互操作
US7657572B2 (en) Selectively utilizing a plurality of disparate solid state storage locations
US20060277225A1 (en) Converting file system metadata structure while the file system remains available
US20110099324A1 (en) Flash memory storage system and flash memory controller and data processing method thereof
CN103246609B (zh) 一种闪存存储设备中冷热数据区分管理的方法及装置
CN103562914A (zh) 节约资源型扩展文件系统
US20150052157A1 (en) Data transfer content selection
CN103473298A (zh) 数据归档方法和装置以及存储系统
CN103473185A (zh) 缓存写入的方法、缓存装置和存储系统
CN102567462B (zh) 异类文件优化
US20170083437A1 (en) Reclaiming of sequential storage medium
US11789622B2 (en) Method, device and computer program product for storage management
CN113448487B (zh) 写入闪存管理表的计算机可读取存储介质、方法及装置
US9235352B2 (en) Datastore for non-overwriting storage devices
CN102681795A (zh) 一种Linux系统的SCSI Target模式的数据I/O写入方法
US20190212945A1 (en) Apparatus and method of managing multi solid state disk system
CN101996207A (zh) 文件标签系统及搜寻与管理文件标签的方法
CN116932196A (zh) 融合系统的数据处理方法、装置、设备和系统
CN113672685A (zh) 信息处理方法、设备、介质
US9396110B2 (en) Non-volatile hybrid memory
CN106033454B (zh) 虚拟文件系统的格式化方法、处理方法和装置
JP5626561B2 (ja) 情報処理システム及びそのデータ管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1173518

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150729

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1173518

Country of ref document: HK