CN102754092A - 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统 - Google Patents

用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统 Download PDF

Info

Publication number
CN102754092A
CN102754092A CN2010800636074A CN201080063607A CN102754092A CN 102754092 A CN102754092 A CN 102754092A CN 2010800636074 A CN2010800636074 A CN 2010800636074A CN 201080063607 A CN201080063607 A CN 201080063607A CN 102754092 A CN102754092 A CN 102754092A
Authority
CN
China
Prior art keywords
file
data
filed
storage
virtual disk
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
CN2010800636074A
Other languages
English (en)
Other versions
CN102754092B (zh
Inventor
I·普拉特
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN102754092A publication Critical patent/CN102754092A/zh
Application granted granted Critical
Publication of CN102754092B publication Critical patent/CN102754092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

用于优化对虚拟盘映像的至少一个块进行归档的过程的系统包括文件系统分析组件和归档组件。文件系统分析组件在第一物理计算装置上执行并且识别虚拟盘映像文件中存储包含文件的数据的多个块。归档组件在第一物理计算装置上执行,识别差异盘文件,确定是否对所述文件进行归档以及向第二物理计算装置传输存储包含所述文件的数据的多个块,所述差异盘文件存储对所识别的存储包含所述文件的数据的多个块的修改的标识。

Description

用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统
相关申请
本申请要求2009年12月14日提交的、标题为“Methods and Systemsfor Optimizing a Process of Archiving at Least One Block of a VirtualDisk Image”、序列号为61/286339的美国申请的优先权,出于任何和所有目的,将该申请的全部公开通过引用整体包含于此。
技术领域
本公开总的涉及用于归档数据的方法和系统。本申请尤其涉及用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统。
背景技术
在用于在客户机器上执行虚拟机的典型环境中,客户机访问虚拟盘映像文件以便执行该虚拟机。通常,当客户机的用户试图做出将导致修改虚拟盘映像文件的修改时(例如,通过试图修改操作系统数据、创建新的文件或修改现有文件),该修改转而是对与该虚拟盘映像文件关联的差异盘进行修改。在一些环境中,在差异盘中存储该修改的标识的过程也被称为生成快照。
在对虚拟盘映像文件和任何关联的差异盘进行归档的典型环境中,对所有的文件进行归档。然而,生成虚拟盘映像文件和差异盘的备份副本可能是计算密集或资源密集型的。例如,这些文件可能要求几个GB的存储空间并且为了制作文件副本将会消耗计算资源和存储装置资源。此外,在通过网络将归档副本传输到远程机器的一些环境中,虚拟盘映像文件和差异盘的归档副本的生成和传输可能是低效的,或者消耗比传统用户可能会要求的更多的客户机上的计算资源。
发明内容
在一个方面,用于优化对虚拟盘映像的至少一个块进行归档的过程的方法包括由在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块。该方法包括由在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含该文件的数据的多个块中的至少一个的修改的标识。该方法包括由归档组件确定是否对该文件进行归档。该方法包括由归档组件向第二物理计算装置传输存储包含该文件的数据的多个块。在一些实施例中,该方法包括由归档组件确定不对该文件进行归档。
在一个实施例中,该方法包括:由文件系统分析组件识别所述虚拟盘映像文件中存储包含第二文件的数据的第二多个块;由归档组件识别第二差异盘文件,所述第二差异盘文件存储对所识别的存储包含该第二文件的数据的第二多个块的修改的标识;由归档组件确定是否对该第二文件进行归档;以及由归档组件确定不向第二物理计算装置传输第二多个块。在又一个实施例中,响应于对所述文件应用过滤器来确定是否对所述文件进行归档。在又一个实施例中,从虚拟盘映像文件的扇区提取标识所述文件和所述多个块间的映射的位置的数据并且访问该映射以识别所述多个块。
在又一个方面,用于优化对虚拟盘映像的至少一个块进行归档的过程的系统包括文件系统分析组件和归档组件。文件系统分析组件在第一物理计算装置上执行并且识别虚拟盘映像文件中存储包含文件的数据的多个块。归档组件在第一物理计算装置上执行,识别差异盘文件,确定是否对所述文件进行归档以及向第二物理计算装置传输存储包含所述文件的数据的多个块,所述差异盘文件存储对所识别的存储包含所述文件的数据的多个块的修改的标识。
附图说明
通过参考下述结合附图的描述,本公开的前述和其它目的、方面、特征和优点将会更加明显并更易于理解,其中:
图1A是描述包括与远程机器通信的本地机器的网络环境的实施例的框图;
图1B-1E是描述有益于此处所描述的方法和系统的计算机的实施例的框图;
图1F是描述虚拟化环境的一个实施例的框图;
图2是描述用于优化对虚拟盘映像的至少一个块进行归档的过程的系统的一个实施例的框图;
图3是描述用于优化对虚拟盘映像的至少一个块进行归档的过程的方法的一个实施例的流程图。
具体实施方式
现参考图1A,描述了网络环境的实施例。总的来说,网络环境包括经由一个或者多个网络104与一个或者多个远程机器106a-106n(总的还称为服务器106或者远程机器106)通信的一个或者多个本地机器102a-102n(总的还称为本地机器102、客户机102、客户节点102、客户机器102、客户计算机102、客户装置102、端点102或端点节点102)。在一些实施例中,本地机器102既有作为客户节点寻求访问服务器所提供资源的能力,也有作为服务器向其他客户机102a-102n提供对所寄载的资源的访问的能力。
虽然图1A示出了在本地机器102和远程机器106之间的网络104,本地机器102和远程机器106可以位于相同的网络104上。网络104可为局域网(LAN)(例如公司内网),城域网(MAN),或者广域网(WAN)(例如因特网或万维网)。在一些实施例中,在本地机器102和远程机器106之间可以有多个网络104。在这些实施例的一个中,网络104’(未示出)可为专用网并且网络104可为公网。在这些实施例的另一个中,网络104’可为专用网并且网络104’可为公网。在又一个实施例中,网络104和104’可都为专用网。而在另一个实施例中,网络104和104’可都为公网。
网络104可以是任何类型和/或形式的网络,并且可包括任意下述网络:点对点网络,广播网络,广域网,局域网,电信网络,数据通信网络,计算机网络,ATM(异步传输模式)网络,SONET(同步光纤网络)网络,SDH(同步数字体系)网络,无线网络和有线网络。在一些实施例中,网络104可以包括无线链路,诸如红外信道或者卫星频带。网络104的拓扑可为总线型、星型或环型网络拓扑。网络104可以具有对于本领域普通技术人员所熟知的、能够支持此处描述的操作的任何这样的网络拓扑。网络可包括利用用于移动装置间通信的任一或一些协议的移动电话网络,这些协议包括:AMPS、TDMA、CDMA、GSM、GPRS或UMTS。在一些实施例中,不同类型的数据可以通过不同协议传输。在其他实施例中,同一类型的数据可通过不同协议传输。
在一些实施例中,系统可包括多个逻辑分组的远程机器106。在这些实施例的一个中,服务器的逻辑分组可以被称为服务器群38。在这些实施例的又一个中,远程机器106可为地理上分散的。在其他实施例中,服务器群38可以作为单个实体被管理。仍在其他实施例中,服务器群38包括多个服务器群38。每个服务器群38内的远程机器106可能是异构的---一个或多个远程机器106可根据一种类型的操作系统平台(例如,WINDOWS NT、WINDOWS 2003或WINDOWS 2008,所有这些都是由华盛顿州Redmond的Microsoft公司出品的)操作,而一个或多个其它远程机器106可根据另一类型的操作系统平台(例如,Unix或Linux)操作。
每个服务器群38的远程机器106不必与同一服务器群38中的另一个远程机器106在物理上接近。因此,逻辑上分组为服务器群38的远程机器106组可以是使用广域网(WAN)连接或城域网(MAN)连接来互联的。例如,服务器群38可包括物理上位于不同大陆或大陆、国家、州、城市、校园或房间的不同区域的远程机器106。如果远程机器106使用局域网(LAN)连接或一些直连形式进行连接,则可增加服务器群38中的远程机器106间的数据传送速度。
远程机器106可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器,或防火墙。在一些实施例中,远程机器106提供远程认证拨入用户服务,并且可被称为RADIUS服务器。在其他实施例中,远程机器106可以有作为应用服务器或者作为主应用服务器工作的能力。仍在其他实施例中,远程机器106是刀片服务器。在其他实施例中,远程机器106执行向用户或客户计算机102提供对计算环境访问的虚拟机。
在一个实施例中,远程机器106可包括活动目录。远程机器106可以是应用加速设备。对于其中远程机器106是应用加速设备的实施例,远程机器106可提供包括防火墙功能、应用防火墙功能,或负载平衡功能的功能。在一些实施例中,远程机器106包括诸如由位于美国加州San Jose的Citrix应用网络组、位于美国加州Mountain View,的Silver Peak Systems公司、位于美国加州San Francisco的Riverbed Technology公司、位于美国华盛顿州Seattle的F5 Networks公司或位于美国加州Sunnyvale的JuniperNetworks公司制造的设备系列中的一个的设备。
在一些实施例中,远程机器106代表本地机器102的用户执行应用。在其他实施例中,远程机器106执行虚拟机,该虚拟机提供执行会话,在该执行会话中应用代表本地机器102的用户来执行。在这些实施例的一个中,该执行会话是所寄载的桌面会话。在这些实施例的另一个中,该执行会话提供对计算环境的访问,该计算环境包括如下的一个或多个:应用、多个应用、桌面应用、以及在其中可执行一个或多个应用的桌面会话。
在一些实施例中,本地机器102与远程机器106通信。在一个实施例中,本地机器102与服务器群38中的远程机器106之一直接通信。在又一个实施例中,本地机器102执行程序邻近应用(a program neighborhoodapplication)以与服务器群38内的远程机器106通信。在又一个实施例中,远程机器106提供主节点的功能。在一些实施例中,本地机器102通过网络104与服务器群38中的远程机器106通信。例如通过网络104,本地机器102可以请求执行服务器群38中的远程机器106a-106n所寄载的各种应用,并接收应用执行结果的输出进行显示。在一些实施例中,只有主节点提供这样的功能,即识别和提供与远程机器106b相关的地址信息所需的功能,所述远程机器106b寄载所请求的应用。
在一个实施例中,远程机器106提供web服务器的功能。在又一个实施例中,远程机器106a接收来自本地机器102的请求,将该请求转发到第二远程机器106b,并用远程机器106b对该请求的响应来对本地机器102的请求进行响应。在又一个实施例中,远程机器106a获得对本地机器102可用的应用的列举,以及与寄载由该应用的列举所识别的应用的远程机器106b相关联的地址信息。在又一个实施例中,远程机器106使用web接口提供对本地机器102的请求的响应。在一个实施例中,本地机器102直接与远程机器106通信以访问所识别的应用。在又一个实施例中,本地机器102接收通过执行远程机器106上所识别的应用而产生的输出数据,例如显示数据。
在一些实施例中,远程机器106或服务器群38可运行一个或多个应用,例如提供瘦客户端计算的应用或远程显示表示应用。在一个实施例中,远程机器106或服务器群38作为应用来执行Citrix Systems有限公司的CITRIXACCESS SUITE的任一部分(例如产品METAFRAME或CITRIX PRESENTATIONSERVER),由Citrix Systems有限公司出品的任何下列产品:CITRIX XENAPP、CITRIX XENDESKTOP、CITRIX ACCESS GATEWAY,和/或微软公司出品的MICROSOFT WINDOWS终端服务中的任意一个。在又一个实施例中,该应用是由位于美国佛罗里达州Fort Lauderdale的Citrix Systems有限公司开发的ICA客户机。仍在又一个实施例中,远程机器106可以运行应用,例如,该应用可以是提供诸如由位于美国华盛顿州Redmond的微软公司制造的MICROSOFT EXCHANGE的电子邮件服务的应用服务器、web或Internet服务器,或桌面共享服务器,或协同服务器。在又一个实施例中,任何应用可以包括任何类型的所寄载的服务或产品,例如位于美国加利福尼亚州SantaBarbara的Citrix Online Division公司提供的GOTOMEETING,位于美国加利福尼亚州Santa Clara的WebEx有限公司提供的WEBEX,或者位于美国华盛顿州Redmond的微软公司提供的Microsoft Office LIVE MEETING。
本地机器102可以执行、操作或者以其它方式提供应用,应用可为任何类型和/或形式的软件、程序或者可执行指令,例如任何类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、或者Java小应用程序、或者可以在本地机器102上执行的任意其它类型和/或形式的可执行指令。在一些实施例中,该应用可以是代表本地机器102在远程机器106上执行的基于服务器或者基于远程的应用。在其他实施例中,远程机器106可以使用任意瘦-客户端协议、表示层协议或远程显示协议来显示输出到本地机器102,所述协议例如由位于美国佛罗里达州Ft.Lauderdale的Citrix Systems有限公司出品的独立计算架构(ICA)协议;由位于美国华盛顿州Redmond的微软公司出品的远程桌面协议(RDP);X11协议;由AT&T贝尔实验室出品的虚拟网络计算(VNC)协议;由位于美国加里福尼亚州Sunnyvale和位于以色列Raanana的Qumranet有限公司出品的SPICE协议;由加里福尼亚州Milpitas的VESA公司出品的Net2Display协议;由位于加拿大不列颠哥伦比亚省的Burnaby的Teradici公司出品的PC-over-IP协议;由加里福尼亚州San Jose的Wyse Technology有限公司出品的TCX协议;由纽约州纽约市的哥伦比亚大学开发的THINC协议;或由马萨诸塞州Chelmsford的Desktone有限公司开发的Virtua1-D协议。该应用可使用任何类型的协议,并且它可为,例如,HTTP客户端、FTP客户端、Oscar客户端或Telnet客户端。在其它实施例中,该应用包括与互联网协议电话(VoIP)通信相关的任何类型的软件,例如软IP电话。在进一步的实施例中,该应用包括与实时数据通信相关的任一应用,例如用于流式传输视频和/或音频的应用。
本地机器102和远程机器106可以被部署为任意类型和形式的计算装置和/或在其上执行,例如能够与任意类型和形式的网络通信并且执行此处所描述的操作的计算机、网络装置或设备。图1B和1C描述了用于实施本地机器102或远程机器106的实施例的计算装置100的框图。如图1B和1C所示,每个计算装置100包括中央处理单元121和主存储器单元122。如图1B所示,计算装置100可包括存储装置128、安装装置116、网络接口118、I/O控制器123、显示装置124a-124n、键盘126和诸如鼠标的指示装置127。存储装置128可包括但不限于操作系统、软件和客户机代理120。如图1C所示,每个计算装置100也可包括另外的可选部件,例如存储器端口103、桥170、一个或多个输入/输出装置130a-130n(总的使用标号130表示)以及与中央处理单元121通信的高速缓存存储器140。
中央处理单元121是响应并处理从主存储器单元122取出的指令的任意逻辑电路。在一些实施例中,中央处理单元121由微处理器单元提供,例如:由位于美国加利福尼亚州Mountain View的Intel公司制造的微处理器单元;由位于美国伊利诺伊州Schaumburg的Motorola公司制造的微处理器单元;由位于美国加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;RS/6000处理器,由位于美国纽约州White Plains的InternationalBusiness Machines公司制造的微处理器单元;或者由位于美国加利福尼亚州Sunnyvale的Advanced Micro Devices公司制造的微处理器单元。计算装置100可以基于这些处理器中的任意一种,或者能够如此处所述方式运行的任意其它处理器。
主存储器单元122可以是能够存储数据并允许微处理器121直接访问任意存储位置的一个或多个存储器芯片,例如静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM(FPM DRAM)、增强DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发扩展数据输出DRAM(BEDO DRAM)、增强DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双倍数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接内存总线DRAM(DRDRAM)或铁电RAM(FRAM)。主存储器122可以基于上述存储器芯片的任意一种,或者能够如此处所述方式运行的任意其它可用存储器芯片。在图1B所示的实施例中处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1C描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1C中主存储器122可以是DRDRAM。
图1C描述在其中主处理器121通过有时被称为后端总线的次级总线直接与高速缓存存储器140通信的实施例。其他实施例中,主处理器121使用系统总线150与高速缓存存储器140通信。高速缓存存储器140通常有比主存储器122更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图1B所示的实施例中,处理器121通过本地系统总线150与各种I/O装置130进行通信。可以使用各种不同的总线将中央处理单元121连接到任意I/O装置130,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器121可以使用高级图形端口(AGP)与显示器124通信。图1C描述了在其中主处理器121通过HYPERTRANSPORT、RAPIDIO、或INFINIBAND通信技术直接与I/O装置130b通信的计算机100的实施例。图1C也描述了在其中本地总线和直接通信相混合的实施例:处理器121使用本地互连总线与I/O装置130a通信同时直接与I/O装置130b通信。
计算装置100中可以有多种I/O装置130a-130n。输入装置包括键盘、鼠标、触控板、轨迹球、麦克风和绘图板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机。如图1B所示,I/O装置可以由I/O控制器123控制。I/O控制器可以控制一个或多个I/O装置,例如键盘126和指示装置127(如鼠标或光笔)。此外,I/O装置还可以为计算装置100提供存储和/或安装介质116。在其它实施例中,计算装置100可以提供USB连接(未示出)以接纳手持USB存储装置,例如由位于美国加利福尼亚州Los Alamitos的Twintech Industry有限公司生产的USB闪存驱动系列装置。
再次参考图1B,计算装置100可以支持任意适当的安装装置116,例如用于接纳诸如3.5英寸、5.25英寸磁盘或ZIP磁盘的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、硬盘驱动器或适于安装软件和程序的任意其它装置。计算装置100还可以包括存储装置,诸如一个或者多个硬盘驱动器或者独立磁盘冗余阵列,用于存储操作系统和其它相关软件,以及用于存储诸如涉及客户机代理120的任意程序的应用软件程序。或者,可以使用安装装置116的任意一种作为存储装置。此外,操作系统和软件可从可引导介质运行,可引导介质例如是可引导CD,诸如KNOPPIX,其为一种用于GNU/Linux的可引导CD,可自knoppix.net作为GNU/Linux一个发行版获得。
此外,计算装置100可以包括网络接口118以通过多种连接来与网络104对接,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、基于SONET的以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某种组合。可使用多种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)来建立连接。在一个实施例中,计算装置100可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或由位于美国佛罗里达州Ft.Lauderdale的Citrix Systems公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行这里所说明的操作的任意类型的网络的任意其它装置。
在一些实施例中,计算装置100可以包括多个显示装置124a-124n或与其相连,这些显示装置各自可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任何类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124a-124n对接、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以与多个显示装置124a-124n对接。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器与显示装置124a-124n中的一个或多个连接。在一些实施例中,计算装置100的操作系统的任一部分都可以被配置用于使用多个显示器124a-124n。在其它实施例中,显示装置124a-124n中的一个或多个可以由一个或多个其它计算装置提供,诸如(例如通过网络)与计算装置100连接的计算装置100a和100b。这些实施例可以包括被设计和构造来使用另一个计算机的显示装置作为计算装置100的第二显示装置124a的任何类型的软件。本领域的普通技术人员应认识和意识到可以将计算装置100配置成拥有多个显示装置124a-124n的各种方式和实施例。
在进一步的实施例中,I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线、串行SCSI总线。
图1B和1C中所描述类型的计算装置100通常地在操作系统的控制下运行,所述操作系统控制任务的调度和对系统资源的访问。计算装置100可运行任何操作系统,诸如任意版本的MICROSOFT WINDOWS操作系统;不同发行版本的Unix和Linux操作系统;用于Macintosh计算机的MAC OS的任意版本;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算装置的操作系统,或者能够在计算装置上运行且执行此处所描述的操作的任意其它操作系统。典型的操作系统包括但不限于:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT3.51、WINDOWS NT 4.0、WINDOWS 7、WINDOWS CE、WINDOWS XP和WINDOWS VISTA,所有这些均由位于美国华盛顿州Redmond的微软公司出品;由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的MAC OS;由位于美国纽约州Armonk的国际商业机器公司出品的OS/2;以及由位于美国犹他州SaltLakeCity的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或形式的Unix操作系统,以及其它。
计算装置100可以是任意工作站、电话、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或其他便携电信装置、媒体播放装置、游戏系统、移动计算装置,或能够通信并有足够的处理器能力和存储容量以执行此处所述的操作的任意其它类型和/或形式的计算、电信或者媒体装置。例如,计算机装置100可包括由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的IPOD系列装置、由位于日本东京的索尼公司出品的PLAYSTATION2、PLAYSTATION3或PERSONAL PLAYSTATION PORTABLE(PSP)装置,由位于日本京都的Nintendo有限公司出品的NINTENDODS、NINTENDOGAMEBOY、NINTENDO GAMEBOY ADVANCED或NINTENDO REVOLUTION装置,或者由位于美国华盛顿州Redmond的微软公司出品的XBOX或XBOX 360装置。
在一些实施例中,计算装置100可以有不同的处理器、操作系统以及符合该装置的输入装置。例如,在一个实施例中,计算装置100是由Palm有限公司出品的TREO180、270、600、650、680、700p、700w/wx、750、755p、800w、Centro或Pro智能电话。在这些实施例的一些中,TERO智能电话是在PalmOS操作系统的控制下操作并且包括笔输入装置以及五向导航装置。
在其他实施例中,计算装置100是移动装置,例如,JAVA使能蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95c1、i335、i365、i570、I576、i580、i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、i776或im1100,以上这些均由位于美国伊利诺伊州Schaumburg的摩托罗拉公司制造;由位于日本京都的Kyocera公司制造的6035或7135;或者由位于韩国首尔的Samsung电子有限公司制造的i300或i330。在一些实施例中,计算装置100是由位于芬兰的诺基亚公司制造或由位于瑞典Lund的Sony Ericsson Mobile Communications AB公司制造的移动装置。
在其他实施例中,计算装置100是黑莓(Blackberry)手持或智能电话,诸如由Research In Motion有限公司制造的装置,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520、黑莓PEARL 8100、8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve 8900、黑莓Pearl Flip。在其他实施例中,计算装置100是智能电话、Pocket PC、Pocket PC电话,或支持Microsoft Windows Mobile Software的其它手持移动装置。此外,计算装置100可以是任意工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行此处所述操作的其它形式的计算或者电信装置。
在一些实施例中,计算装置100是数字音频播放器。在这些实施例的一个中,计算装置100是诸如由位于美国加利福尼亚州Cupertino的苹果计算机公司制造的Apple IPOD、IPOD Touch、IPOD NANO和IPOD SHUFFLE系列装置的数字音频播放器。在这些实施例的另一个中,数字音频播放器可作为便携媒体播放器和作为大容量存储装置来工作。在其他实施例中,计算装置100是诸如由位于美国新泽西州Ridgefield Park的Samsung ElectronicsAmerica公司制造的DigitalAudioPlayer Select MP3播放器,或由位于美国伊利诺伊州Schaumburg的Motorola公司制造的Motorola m500或m25的数字音频播放器。在其他实施例中,计算装置100是便携媒体播放器,诸如由Creative Technologies有限公司制造的Zen Vision W、Zen Vision系列、Zen Portable Media Center装置或Digital MP3系列的MP3播放器。仍在其他实施例中,计算装置100是支持以下文件格式的便携媒体播放器或数字音频播放器,这些文件格式包括但不限于MP3、WAV、M4A/AAC、WMAProtected AAC、AIFF、Audible有声读物、Apple Lossless音频文件格式和.mov、.m4v以及.mp4MPEG-4(H.264/MPEG-4 AVC)视频文件格式。
在一些实施例中,计算装置100包括装置的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的一个中,计算装置100是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。在这些实施例的又一个中,计算装置100是由位于加利福尼亚州Cupertino的苹果公司制造的iPhone系列智能电话中的装置。
在一个实施例中,计算装置102a可从远程机器106请求资源,同时向客户机102b提供远程机器106的功能。在这样的实施例中,就从远程机器106(其可以被称为服务器)接收数据而言,计算装置102a可以被称为客户机,而就第二客户机102b而言,计算装置102a可以被称为服务器。在又一个实施例中,客户机102可代表客户机102上的用户从远程机器106请求资源。
如图1D所示,计算装置100可以包括多个处理器,并且可以提供用于对不只一个数据片同时执行多个指令或者同时执行一个指令的功能。在一些实施例中,计算装置100可包括具有一个或多个核的并行处理器。在这些实施例的一个中,计算装置100是共享内存并行装置,具有多个处理器和/或多个处理器核,将所有可用内存作为一个全局地址空间进行访问。在这些实施例的又一个中,计算装置100是分布式存储器并行装置,具有多个处理器,每个处理器仅访问本地存储器。在这些实施例的又一个中,计算装置100既有共享的存储器又有仅由特定处理器或处理器子集访问的存储器。在这些实施例的又一个中,如多核微处理器的计算装置100将两个或多个独立处理器组合在一个封装中,通常在一个集成电路(IC)中。在这些实施例的又一个中,计算装置100包括具有单元宽带引擎(CELL BROADBAND ENGINE)架构的芯片,并包括高能处理器单元以及多个协同处理单元,高能处理器单元和多个协同处理单元通过内部高速总线连接在一起,可以将内部高速总线称为单元互连总线。
在一些实施例中,处理器提供用于对多个数据片同时执行单个指令(SIMD)的功能。其他实施例中,处理器提供用于对多个数据片同时执行多个指令(MIMD)的功能。又一个实施例中,处理器可以在单个装置中使用SIMD和MIMD核的任意组合。
在一些实施例中,计算装置100可包括图形处理单元。图1E所示的这些实施例的一个中,计算装置100包括至少一个中央处理单元121和至少一个图形处理单元。在这些实施例的又一个中,计算装置100包括至少一个并行处理单元和至少一个图形处理单元。在这些实施例的又一个中,计算装置100包括任意类型的多个处理单元,多个处理单元中的一个包括图形处理单元。
现参考图1F,该框图描述虚拟化环境400的一个实施例。总体而言,计算装置100包括管理程序层、虚拟化层和硬件层。管理程序层包括管理程序161(也称为虚拟化管理器),其通过在虚拟化层中执行的至少一个虚拟机来分配和管理对硬件层中的多个物理资源(例如处理器221和盘228)的访问。虚拟化层包括至少一个操作系统171和分配给至少一个操作系统171的多个虚拟资源。虚拟资源可包括而不限于多个虚拟处理器132a、132b、132c(总称为132)和虚拟盘142a、142b、142c(总称为142),以及如虚拟存储器和虚拟网络接口的虚拟资源。可将多个虚拟资源和操作系统称为虚拟机166。虚拟机166可包括控制操作系统165,该控制操作系统165与管理程序161通信,并用于执行应用以管理并配置计算装置100上的其他虚拟机。
现参考图1F,更具体地,管理程序161可以以模拟可访问物理设备的操作系统的任何方式向操作系统提供虚拟资源。管理程序161可以向任一数量客户操作系统171a、171b(总称为171)提供虚拟资源。一些实施例中,计算装置100执行一种或多种管理程序。这些实施例中,管理程序可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件并执行提供对计算环境的访问的虚拟机。管理程序可包括由位于美国加州的Palo Alto的VMWare制造的这些程序;XEN管理程序(一种开源产品,其开发由开源Xen.org协会监管);由微软公司提供的HyperV、VirtualServer或虚拟PC管理程序,或其他。一些实施例中,计算装置100执行创建客户操作系统可在其上执行虚拟机平台的管理程序,该计算装置100被称为宿主服务器。在这些实施例的一个中,例如,计算装置100是由位于美国佛罗里达州Fort Lauderdale的CitrixSystems有限公司提供的XEN SERVER。
一些实施例中,管理程序161在计算装置上执行的操作系统之内执行。在这些实施例的一个中,执行操作系统和管理程序161的计算装置可被视为具有宿主操作系统(执行在计算装置上的操作系统),和客户操作系统(在由管理程序161提供的计算资源分区内执行的操作系统)。其他实施例中,管理程序161和计算装置上的硬件直接交互而不是在宿主操作系统上执行。在这些实施例的一个中,管理程序161可被视为在“裸金属(bare metal)”上执行,所述“裸金属”指包括计算装置的硬件。
一些实施例中,管理程序161可以产生操作系统171在其中执行的虚拟机166a-c(总称为166)。在这些实施例的一个中,管理程序161加载虚拟机映像以创建虚拟机166。在这些实施例的又一个中,管理程序161在虚拟机166内执行操作系统171。仍在这些实施例的又一个中,虚拟机166执行操作系统171。
一些实施例中,管理程序161控制在计算装置100上执行的虚拟机166的处理器调度和内存划分。在这些实施例的一个中,管理程序161控制至少一个虚拟机166的执行。在这些实施例的又一个中,管理程序161向至少一个虚拟机166呈现由计算装置100提供的至少一个硬件资源的抽象。其他实施例中,管理程序161控制是否以及如何将物理处理器能力呈现给虚拟机166。
控制操作系统165可以执行用于管理和配置客户操作系统的至少一个应用。一个实施例中,控制操作系统165可以执行管理应用,如包括如下用户接口的应用,该用户接口为管理员提供对用于管理虚拟机执行的功能的访问,这些功能包括用于执行虚拟机、中止虚拟机执行或者识别要分配给虚拟机的物理资源类型的功能。又一个实施例中,管理程序161在由管理程序161创建的虚拟机166内执行控制操作系统165。又一个实施例中,控制操作系统165在被授权直接访问计算装置100上的物理资源的虚拟机166上执行。一些实施例中,计算装置100a上的控制操作系统165a可以通过管理程序161a和管理程序161b之间的通信与计算装置100b上的控制操作系统165b交换数据。这样,一个或多个计算装置100可以和一个或多个其他计算装置100交换有关处理器或资源池中可用的其他物理资源的数据。在这些实施例的一个中,这种功能允许管理程序管理分布在多个物理计算装置上的资源池。在这些实施例的又一个中,多个管理程序管理在一个计算装置100上执行的一个或多个客户操作系统。
一个实施例中,控制操作系统165在被授权与至少一个客户操作系统171交互的虚拟机166上执行。又一个实施例中,客户操作系统171通过管理程序161和控制操作系统165通信,以请求访问盘或网络。仍在又一个实施例中,客户操作系统171和控制操作系统165可通过由管理程序161建立的通信信道通信,例如,通过由管理程序161提供的多个共享存储器页面。
一些实施例中,控制操作系统165包括用于直接与由计算装置100提供的网络硬件通信的网络后端驱动器。在这些实施例的一个中,网络后端驱动器处理来自至少一个客户操作系统110的至少一个虚拟机请求。其他实施例中,控制操作系统165包括用于与计算装置100上的存储元件通信的块后端驱动器。在这些实施例的一个中,块后端驱动器基于从客户操作系统171接收的至少一个请求从存储元件读写数据。
一个实施例,控制操作系统165包括工具堆栈164。其他实施例中,工具堆栈164提供如下功能:和管理程序161交互、和其他控制操作系统165(例如位于第二计算装置100b上)通信,或者管理计算装置100上的虚拟机166b、166c。又一个实施例中,工具堆栈164包括自定义应用,其用于向虚拟机群的管理员提供改进的管理功能。一些实施例中,工具堆栈164和控制操作系统165中的至少一个包括管理API,其提供用于远程配置并控制计算装置100上运行的虚拟机166的接口。其他实施例中,控制操作系统165通过工具堆栈164和管理程序161通信。
一个实施例中,管理程序161在由管理程序161创建的虚拟机166内执行客户操作系统171。又一个实施例中,客户操作系统171为计算装置100的用户提供对计算环境中的资源的访问。又一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对计算装置100的用户可用的其他资源。又一个实施例中,可通过多个访问方法将资源传送给计算装置100,这些方法包括但不限于:常规的直接在计算装置100上安装、通过应用流的方法传送给计算装置100、将由在第二计算装置100’上执行资源产生的并通过表示层协议传送给计算装置100的输出数据传送给计算装置100、将通过在第二计算装置100’上执行的虚拟机执行资源所产生的输出数据传送给计算装置100、或者从连接到计算装置100的移动存储装置(例如USB设备)执行或者通过在计算装置100上执行的虚拟机执行并且产生输出数据。一些实施例中,计算装置100将执行资源所产生的输出数据传输给另一个计算装置100’。
一个实施例中,客户操作系统171和该客户操作系统171在其上执行的虚拟机结合形成完全虚拟化虚拟机,该完全虚拟化虚拟机并不知道自己是虚拟机,这样的机器可称为“Domain U HVM(硬件虚拟机)虚拟机”。又一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。在又一个实施例中,完全虚拟化机可包括驱动器,其通过和管理程序161通信提供功能。这样的实施例中,驱动器可意识到自己在虚拟化环境中执行。
又一个实施例中,客户操作系统171和该客户操作系统171在其上执行的虚拟机结合形成超虚拟化(paravirtualized)虚拟机,该超虚拟化虚拟机意识到自己是虚拟机,这样的机器可称为“Domain U PV虚拟机”。又一个实施例中,超虚拟化机包括完全虚拟化机不包括的额外驱动器。又一个实施例中,超虚拟化机包括如上所述的被包含在控制操作系统165中的网络后端驱动器和块后端驱动器。
现参考图2,该框图描述用于优化对虚拟盘映像的至少一个块进行归档的过程的系统的一个实施例。总的来说,该系统包括文件系统分析组件202和归档组件210。文件系统分析组件202在第一物理计算装置100a上执行。文件系统分析组件202识别虚拟盘映像文件204中存储包含文件208的数据的多个块206。归档组件210在第一物理计算装置100a上执行。归档组件210识别差异盘文件212,所述差异盘文件212存储对所识别的存储包含文件208的数据的多个块206的修改的标识214。归档组件210确定是否对文件208进行归档。归档组件210向第二物理计算装置100n传输存储包含文件208的数据的多个块206。在一些实施例中,响应于对下述中的至少一个应用过滤器:该文件的标识和对存储与该文件有关的或形成该文件的数据的块的修改的标识,归档组件210确定不对该文件进行归档。
在一些实施例中,系统分析虚拟盘映像文件内的文件以确定是否对该文件进行归档。在这些实施例的一个中,分析指示文件已经被修改、被删除或者已经过时。在这些实施例的又一个中,对文件名、文件类型或文件的其他标识符的分析的结果是确定不应该对该文件进行归档。在此处所述的方法和系统的一些实施例中,通过分析虚拟磁盘映像文件中包含文件的块并且做出对于所有文件是否归档所有块的确定,此处所述的方法和系统提供数据备份功能和对相关数据块的有效归档。
在一个实施例中,该系统包括在对文件进行归档之前从虚拟盘映像文件识别和移除未使用的块。在又一个实施例中,该系统包括在对文件进行归档之前从虚拟盘映像文件识别和移除不需要被归档的块的组件;例如,该系统可以访问不需要被归档的文件名或文件类型的列举并且移除存储在列举中所识别的文件的数据的块。在又一个实施例中,该系统包括在对该虚拟盘映像文件进行归档之前压缩剩余的数据的组件。
现参考图2,更具体地,该文件系统分析组件202包括解析器,所述解析器用于分析虚拟盘映像文件204并且识别存储包含文件208的数据的多个块206。在一个实施例中,文件系统分析组件202包括用于识别虚拟盘映像文件204中存储包含第二文件208b的数据的第二多个块206b的功能。
在一个实施例中,多个块206被称为簇(cluster)。在又一个实施例中,多个块206中的块206a被称为扇区(sector)。然而,在又一个实施例中,一个块包括多个扇区。在又一个实施例中,一个块为2MB大小。在又一个实施例中,虚拟盘映像文件204具有诸如下面列出的文件格式之一:例如由美国华盛顿州Redmond的微软公司发布的虚拟硬盘文件(VHD)格式,或者由美国加利福尼亚州Palo Alto的VMware有限公司发布的虚拟机盘(VMDK)文件格式。
在一些实施例中,归档组件210包括策略引擎218。在这些实施例的一个中,归档组件210执行策略引擎218以做出关于是否对文件进行归档的确定。在这些实施例的又一个中,策略引擎218包括用于确定是否对文件进行归档的至少一个过滤器。在其他实施例中,归档组件210访问在数据库中存储的数据以确定是否对文件进行归档。在其他实施例中,归档组件210访问正则表达分析组件以过滤掉不需要被归档的文件。在这些实施例的一个中,归档组件210包括该正则表达分析组件的功能。尽管在图2中被描述为分开的组件,但在一些实施例中,单个组件提供归档组件210和文件系统分析组件202的功能。
现参考图3,该流程图描述用于优化对虚拟盘映像的至少一个块进行归档的过程的方法的一个实施例。总的来说,该方法300包括由在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块(302)。该方法包括由在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含该文件的数据的多个块中的至少一个的修改的标识(304)。该方法包括由归档组件确定是否对该文件进行归档(306)。该方法包括由归档组件向第二物理计算装置传输存储包含该文件的数据的多个块(308)。在一些实施例中,该方法包括由归档组件确定不对该多个块进行归档。
现参考图3,更具体地,在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块(302)。在一些实施例中,文件系统分析组件202从虚拟盘映像文件204的块提取通过该虚拟盘映像文件204可访问的逻辑驱动器(其也可以被称为卷)的列表。在这些实施例的一个中,逻辑驱动器的列表识别对于一个或多个逻辑驱动器的启动扇区的位置;所述启动扇区可以是存储可执行数据的扇区,通过该扇区使逻辑驱动器对第一物理计算装置100a的用户可用。在这些实施例的又一个中,文件系统分析组件202从所识别的启动扇区提取标识文件208和存储包含文件208的数据的多个块206之间的映射220的位置的数据;该映射220可以被称为主文件表。在又一个实施例中,文件系统分析组件202存储该映射220的副本。在又一个实施例中,文件系统分析组件202访问该映射220以识别存储文件208的多个块206。在一些实施例中,文件系统分析组件202向归档组件210传输映射220的位置的标识。
在其他实施例中,文件系统分析组件202基于对映射220中数据的分析生成第二映射222。在这些实施例的一个中,文件系统分析组件202生成将多个块206与文件208关联的第二映射222。在这些实施例的又一个中,第二映射222是映射220的逆映射,其提供用于根据一个或多个数据块的标识来识别文件名的功能。
在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含该文件的数据的多个块中的至少一个的修改的标识(304)。在一个实施例中,差异盘文件212包括对虚拟盘映像文件204的引用。
在一个实施例中,归档组件210从文件系统分析组件202接收映射222的副本。在又一个实施例中,归档组件210接收存储映射222的块的位置的标识。在又一个实施例中,归档组件210从文件系统分析组件202接收多个块206的标识和文件208的标识(例如,文件名),所述多个块206存储包含文件208的数据。
在一个实施例中,归档组件210分析由差异盘212存储的数据以确定该差异盘文件212是否存储对文件系统分析组件202所识别的多个块206的修改的标识214。在又一个实施例中,归档组件210从差异盘文件212提取数据并且确定该数据是否包括匹配所述标识214的标识。在又一个实施例中,归档组件210确定差异盘212存储对多个块206的修改的标识。在又一个实施例中,归档组件210检索文件208的标识(例如,从文件系统分析组件202接收的文件名)。在一些实施例中,文件系统分析组件202和归档组件210一起提供通常由文件系统驱动程序和其他组件提供的功能。因此,在这些实施例的一个中,归档组件210可以确定差异盘文件212是否包括对最初存储在虚拟盘映像文件205中的文件的修改,而不必挂载差异盘文件212或虚拟盘映像文件204。
在一些实施例中,归档组件210访问存储对在给定时间内已经发生变化的每个文件208的指示的数据结构。在其他实施例中,归档组件210访问存储对文件208在给定时间内是否已经发生变化的指示的数据结构。在其他实施例中,差异盘文件212存储这样的数据结构。然而,在其他实施例中,虚拟盘映像文件204存储该数据结构。在这些实施例的一个中,归档组件210不需要分析差异盘212,而是可以访问由虚拟盘映像文件204所存储的该数据结构。在另外的实施例中,这样的数据结构可以作为例如被称为更新序列号(Update Sequence Number,USN)或变化日志(Change Journal)的结构而被提供。在这些实施例的一个中,该数据结构是通过记录功能生成的,所述记录功能在该数据结构中记录在虚拟盘映像文件204中发生的每次变化。
归档组件确定是否对文件进行归档(306)。在一个实施例中,归档组件210响应于对文件208的标识应用过滤器来确定是否对文件208进行归档;例如,归档组件210可确定是否基于文件名的全部或部分来对文件208进行归档。在又一个实施例中,归档组件210响应于对差异盘212的标识应用过滤器来确定是否对文件208进行归档;例如,归档组件210可确定是否基于差异盘212的创建时间来对文件208进行归档。在又一个实施例中,响应于对由差异盘212存储的对多个块206的修改的标识214应用过滤器,归档组件210确定是否对文件208进行归档;例如,归档组件210可确定是否基于对该文件所做的修改的类型来对文件208进行归档。在又一个实施例中,归档组件210确定对于标识214指示其是将要被删除的文件不进行归档。在又一个实施例中,响应于策略引擎218关于是否对文件208进行归档的确定,归档组件210确定是否对文件208进行归档。
在一些实施例中,归档组件210确定不对被识别为具有特定文件类型的文件进行归档。在这些实施例的一个中,例如,归档组件208可以应用策略并确定不对模板文件或临时文件进行归档。在这些实施例的又一个中,归档组件208可以应用策略并确定不对页面文件进行归档。在这些实施例的又一个中,归档组件208可以应用策略并确定不对休眠文件进行归档。在这些实施例的又一个中,归档组件208可以应用策略并确定不对特定于在第一物理计算装置100a上虚拟盘映像文件204的执行的文件进行归档。在其他实施例中,归档组件208访问不需要被归档的文件类型的列举。在其他实施例中,归档组件208访问不需要被归档的关联文件的文件名的列举。在另外的实施例中,例如,在由虚拟盘映像文件204存储的注册表内存储的数据包括不需要被归档的文件的列举。
在一些实施例中,归档组件210确定不对文件208进行归档,因为对块206的修改的标识的分析指示该修改已经使原始文件过时。在这些实施例的一个中,归档组件210确定对由差异盘212存储的第二多个块进行归档,而不是对由虚拟盘映像文件214存储的多个块206进行归档。在这些实施例的又一个中,归档组件210确定对由虚拟盘映像文件214存储的第二多个块206b进行归档,而不是对最初识别的多个块206a进行归档。
归档组件向第二物理计算装置传输存储包含该文件的数据的多个块(308)。在一个实施例中,归档组件210响应于确定对文件208进行归档来向第二物理计算装置100b传输多个块206。在又一个实施例中,归档组件210响应于确定不对文件208进行归档,不传输多个块206。在又一个实施例中,归档组件210传输存储包含对文件208的修改的数据的多个块,所述多个块由标识214来进行识别。在一些实施例中,归档组件210将该多个块206作为具有与虚拟盘映像文件204的格式大体上相似的格式的虚拟盘映像文件来进行传输。在这些实施例的一个中,通过传输具有与原始虚拟盘映像文件204的格式大体上相似格式的文件,而不是例如传输具有显著不同格式的文件,归档组件210为请求访问所传输的多个块的用户消除了重新格式化该所传输的多个块以便访问所传输的多个块的需要。
在此处所述的方法和系统的一些实施例中,通过分析虚拟盘映像文件204中包含文件的块并做出是否对它们全部进行归档的确定,所述的方法和系统提供了数据备份功能和对相关数据块的有效归档。
应该理解,上文描述的系统可提供这些组件的任意多个或每一个并且这些组件可以在独立机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。可以使用编程和/或工程技术将上文所描述的系统和方法实现为方法、装置或产品以提供软件、固件、硬件或上述的任何组合。此外,上述系统和方法可作为在一件或多件制造产品上实现或在其中实现的一个或多个计算机可读程序而被提供。此处使用的术语“制造产品”旨在包括从一个或多个计算机可读的装置、固件、可编程逻辑、存储器装置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)等)、电子装置、计算机可读的非易失存储单元(例如,CD-ROM、软盘、硬盘等)可访问的并嵌入其中的代码或逻辑。所述制造产品可以是从经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问的文件服务器可访问的。所述制造产品可以是闪存卡或磁带。所述制造产品包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件制造产品上或其中。
已经描述了用于优化对虚拟磁盘映像的至少一个块进行归档的过程的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含本发明的概念的其他实施例。因此,本发明的公开内容不应当受限于某些实施例,而仅仅有所附的权利要求的精神与范围所限制。

Claims (15)

1.一种用于优化对虚拟盘映像的至少一个块进行归档的过程的方法,所述方法包括:
由在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块;
由在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含所述文件的数据的多个块中的至少一个的修改的标识;
由归档组件确定是否对所述文件进行归档;
由归档组件向第二物理计算装置传输存储包含所述文件的数据的多个块。
2.根据权利要求1所述的方法,还包括:
由文件系统分析组件识别所述虚拟盘映像文件中存储包含第二文件的数据的第二多个块;
由归档组件识别第二差异盘文件,所述第二差异盘文件存储对所识别的存储包含第二文件的数据的第二多个块的修改的标识;
由归档组件确定是否对第二文件进行归档;
由归档组件确定不向第二物理计算装置传输第二多个块。
3.根据权利要求1所述的方法,其中确定还包括:
响应于对所述文件应用过滤器来确定是否对所述文件进行归档。
4.根据权利要求1所述的方法,其中确定还包括响应于识别所述差异盘文件来确定是否对所述文件进行归档。
5.根据权利要求1所述的方法,还包括从虚拟盘映像文件的扇区提取标识所述文件和所述多个块之间的映射的位置的数据。
6.根据权利要求5所述的方法,还包括访问所述映射以识别所述多个块。
7.一种用于优化对虚拟盘映像的至少一个块进行归档的过程的系统,所述系统包括:
文件系统分析组件,其在第一物理计算装置上执行并且识别虚拟盘映像文件中存储包含文件的数据的多个块;和
归档组件,其在第一物理计算装置上执行,识别差异盘文件,确定是否对所述文件进行归档以及向第二物理计算装置传输存储包含所述文件的数据的多个块,所述差异盘文件存储对所识别的存储包含所述文件的数据的多个块的修改的标识。
8.根据权利要求7所述的系统,其中文件系统分析组件还包括用于识别虚拟盘映像文件中存储包含第二文件的数据的第二多个块的装置。
9.根据权利要求7所述的系统,其中归档组件还包括:
用于识别第二差异盘文件的装置,所述第二差异盘文件存储对所识别的存储包含第二文件的数据的第二多个块的修改的标识;
用于确定是否对第二文件进行归档的装置;以及
用于确定不向第二物理计算装置传输第二多个块的装置。
10.一种用于优化对虚拟盘映像的至少一个块进行归档的过程的系统,所述系统包括:
用于由在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块的装置;
用于由在第一物理计算装置上执行的归档组件识别差异盘文件的装置,所述差异盘文件存储对所识别的存储包含所述文件的数据的多个块中的至少一个的修改的标识;
用于由归档组件确定是否对所述文件进行归档的装置;以及
用于由归档组件向第二物理计算装置传输存储包含所述文件的数据的多个块的装置。
11.根据权利要求10所述的系统,还包括:
用于由文件系统分析组件识别虚拟盘映像文件中存储包含第二文件的数据的第二多个块的装置;
用于由归档组件识别第二差异盘文件的装置,所述第二差异盘文件存储对所识别的存储包含第二文件的数据的第二多个块的修改的标识;
用于由归档组件确定是否对第二文件进行归档的装置;以及
用于由归档组件确定不向第二物理计算装置传输第二多个块的装置。
12.根据权利要求10所述的系统,还包括
用于响应于对所述文件应用过滤器来确定是否对所述文件进行归档的装置。
13.根据权利要求10所述的系统,还包括用于响应于识别所述差异盘文件来确定是否对所述文件进行归档的装置。
14.根据权利要求10所述的系统,还包括用于从虚拟盘映像文件的扇区提取标识所述文件和所述多个块之间的映射的位置的数据的装置。
15.根据权利要求14所述的系统,还包括用于访问所述映射以识别所述多个块的装置。
CN201080063607.4A 2009-12-14 2010-12-14 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统 Active CN102754092B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US28633909P 2009-12-14 2009-12-14
US61/286,339 2009-12-14
US61/286339 2009-12-14
PCT/US2010/060354 WO2011081948A2 (en) 2009-12-14 2010-12-14 Methods and systems for optimizing a process of archiving at least one block of a virtual disk image

Publications (2)

Publication Number Publication Date
CN102754092A true CN102754092A (zh) 2012-10-24
CN102754092B CN102754092B (zh) 2016-11-30

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688981A (zh) * 2002-08-09 2005-10-26 网络装置公司 通过在文件系统上将虚拟盘对象分层进行存储虚拟化
US20070208788A1 (en) * 2006-03-01 2007-09-06 Quantum Corporation Data storage system including unique block pool manager and applications in tiered storage
CN101443746A (zh) * 2006-05-18 2009-05-27 李尚奎 用于保护客户端及服务器的方法
US20090228669A1 (en) * 2008-03-10 2009-09-10 Microsoft Corporation Storage Device Optimization Using File Characteristics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688981A (zh) * 2002-08-09 2005-10-26 网络装置公司 通过在文件系统上将虚拟盘对象分层进行存储虚拟化
US20070208788A1 (en) * 2006-03-01 2007-09-06 Quantum Corporation Data storage system including unique block pool manager and applications in tiered storage
CN101443746A (zh) * 2006-05-18 2009-05-27 李尚奎 用于保护客户端及服务器的方法
US20090228669A1 (en) * 2008-03-10 2009-09-10 Microsoft Corporation Storage Device Optimization Using File Characteristics

Also Published As

Publication number Publication date
US20110161301A1 (en) 2011-06-30
EP2513811A4 (en) 2013-07-03
WO2011081948A2 (en) 2011-07-07
US9122414B2 (en) 2015-09-01
EP2513811B1 (en) 2018-03-28
WO2011081948A3 (en) 2011-10-06
EP2513811A2 (en) 2012-10-24

Similar Documents

Publication Publication Date Title
CN102804140B (zh) 用于将设备驱动程序导入到客户计算环境中的方法和系统
CN102334114B (zh) 用于优化确定由虚拟硬盘地址标识的数据位置的过程的系统和方法
CN102037444B (zh) 用于修补从通用基础磁盘映像获取的多个磁盘映像的方法和系统
CN102656578B (zh) 用于在第一机器上显示与第二机器的驱动器关联的数据而不必映射该驱动器的方法和系统
EP2513811B1 (en) Methods and systems for optimizing a process of archiving at least one block of a virtual disk image
CN102272726B (zh) 便于异构处理器池虚拟化的系统和方法
CN102317909A (zh) 便于在多个物理机器间迁移虚拟机的系统和方法
CN102754091B (zh) 用于生成在本地机器上和远程机器上生成的任务栏按钮组条目的组合显示的方法和系统
CN102971706B (zh) 将信息从安全虚拟机重定向到不安全虚拟机
CN102292699B (zh) 用于在云计算环境中提供对从存储系统检索的数据的转换的系统和方法
CN102754077B (zh) 可从外部媒体装置引导的安全虚拟化环境
US9130903B2 (en) Unified out of band management system for desktop and server sessions
CN104067288B (zh) 存储加密方法
CN102257481B (zh) 用于由管理程序控制对物理资源的访问的系统和方法
CN102368201B (zh) 虚拟化环境中存储优化选择
CN102257479A (zh) 用于优化运行至少一个进程的虚拟机的配置的系统和方法
CN104956329A (zh) 在云计算环境中的网络方案
CN102202049A (zh) 用于多虚拟机设备的网络策略实现
CN102754092B (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
C14 Grant of patent or utility model
GR01 Patent grant