相关申请related application
本申请要求2009年12月14日提交的、标题为“Methods and Systemsfor Optimizing a Process of Archiving at Least One Block of a VirtualDisk Image”、序列号为61/286339的美国申请的优先权,出于任何和所有目的,将该申请的全部公开通过引用整体包含于此。This application claims priority to US Application Serial No. 61/286339, filed December 14, 2009, entitled "Methods and Systems for Optimizing a Process of Archiving at Least One Block of a Virtual Disk Image", for any and The entire disclosure of this application is hereby incorporated by reference in its entirety for all purposes.
技术领域technical field
本公开总的涉及数据归档处理领域,尤其涉及一种用于优化虚拟盘映像块而进行数据归档的方法和系统。The present disclosure generally relates to the field of data archiving processing, and in particular, relates to a method and system for optimizing virtual disk image blocks for data archiving.
背景技术Background technique
在用于在客户机器上执行虚拟机的典型环境中,客户机访问虚拟盘映像文件以便执行该虚拟机。通常,当客户机的用户试图做出将导致修改虚拟盘映像文件的修改时(例如,通过试图修改操作系统数据、创建新的文件或修改现有文件),该修改转而是对与该虚拟盘映像文件关联的差异盘进行修改。在一些环境中,在差异盘中存储该修改的标识的过程也被称为生成快照。In a typical environment for executing a virtual machine on a client machine, the client accesses a virtual disk image file in order to execute the virtual machine. Typically, when a user of a guest machine attempts to make a modification that would result in a modification of a virtual disk image file (for example, by attempting to modify operating system data, create a new file, or modify an existing file), Modify the differential disk associated with the disk image file. In some environments, the process of storing the identification of the modification in the differencing disk is also referred to as taking a snapshot.
在对虚拟盘映像文件和任何关联的差异盘进行归档的典型环境中,对所有的文件进行归档。然而,生成虚拟盘映像文件和差异盘的备份副本可能是计算密集或资源密集型的。例如,这些文件可能要求几个GB的存储空间并且为了制作文件副本将会消耗计算资源和存储装置资源。此外,在通过网络将归档副本传输到远程机器的一些环境中,虚拟盘映像文件和差异盘的归档副本的生成和传输可能是低效的,或者消耗比传统用户可能会要求的更多的客户机上的计算资源。In a typical environment where virtual disk image files and any associated differencing disks are archived, all files are archived. However, generating backup copies of virtual disk image files and differencing disks can be computationally or resource intensive. For example, these files may require several gigabytes of storage space and will consume computing and storage device resources to make copies of the files. Furthermore, in some environments where archive copies are transferred over a network to remote machines, generation and transfer of archive copies of virtual disk image files and differencing disks may be inefficient or consume more client resources than traditional users may require On-board computing resources.
发明内容Contents of the invention
在一个方面,用于优化对虚拟盘映像的至少一个块进行归档的过程的方法包括由在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块。该方法包括由在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含该文件的数据的多个块中的至少一个的修改的标识。该方法包括由归档组件确定是否对该文件进行归档。该方法包括由归档组件向第二物理计算装置传输存储包含该文件的数据的多个块。在一些实施例中,该方法包括由归档组件确定不对该文件进行归档。In one aspect, a method for optimizing the process of archiving at least one block of a virtual disk image includes identifying, by a file system analysis component executing on a first physical computing device, multiple piece. The method includes identifying, by an archiving component executing on the first physical computing device, a difference disk file that stores an identification of a modification to at least one of the identified plurality of blocks storing data containing the file. The method includes determining, by the archiving component, whether to archive the file. The method includes transmitting, by the archiving component, to a second physical computing device a plurality of blocks storing data comprising the file. In some embodiments, the method includes determining, by the archiving component, not to archive the file.
在一个实施例中,该方法包括:由文件系统分析组件识别所述虚拟盘映像文件中存储包含第二文件的数据的第二多个块;由归档组件识别第二差异盘文件,所述第二差异盘文件存储对所识别的存储包含该第二文件的数据的第二多个块的修改的标识;由归档组件确定是否对该第二文件进行归档;以及由归档组件确定不向第二物理计算装置传输第二多个块。在又一个实施例中,响应于对所述文件应用过滤器来确定是否对所述文件进行归档。在又一个实施例中,从虚拟盘映像文件的扇区提取标识所述文件和所述多个块间的映射的位置的数据并且访问该映射以识别所述多个块。In one embodiment, the method includes: identifying, by a file system analysis component, a second plurality of blocks storing data containing a second file in the virtual disk image file; identifying a second difference disk file by an archiving component, and the first The two differential disk files store identifications of modifications to the identified second plurality of blocks containing data of the second file; the archiving component determines whether to archive the second file; and the archiving component determines not to file the second file. The physical computing device transmits the second plurality of blocks. In yet another embodiment, determining whether to archive the file is responsive to applying a filter to the file. In yet another embodiment, the data identifying the location of the mapping between the file and the plurality of blocks is extracted from a sector of the virtual disk image file and the mapping is accessed to identify the plurality of blocks.
在又一个方面,用于优化对虚拟盘映像的至少一个块进行归档的过程的系统包括文件系统分析组件和归档组件。文件系统分析组件在第一物理计算装置上执行并且识别虚拟盘映像文件中存储包含文件的数据的多个块。归档组件在第一物理计算装置上执行,识别差异盘文件,确定是否对所述文件进行归档以及向第二物理计算装置传输存储包含所述文件的数据的多个块,所述差异盘文件存储对所识别的存储包含所述文件的数据的多个块的修改的标识。In yet another aspect, a system for optimizing a process of archiving at least one block of a virtual disk image includes a file system analysis component and an archiving component. A file system analysis component executes on the first physical computing device and identifies a plurality of blocks in the virtual disk image file storing data containing the file. The archiving component executes on the first physical computing device, identifies a difference disk file, determines whether to archive the file and transmits to the second physical computing device a plurality of blocks storing data containing the file, the difference disk file storing An identification of a modification to the identified plurality of blocks storing data comprising the file.
附图说明Description of drawings
通过参考下述结合附图的描述,本公开的前述和其它目的、方面、特征和优点将会更加明显并更易于理解,其中:The foregoing and other objects, aspects, features and advantages of the present disclosure will be more apparent and more comprehensible by referring to the following description taken in conjunction with the accompanying drawings, in which:
图1A是描述包括与远程机器通信的本地机器的网络环境的实施例的框图;1A is a block diagram depicting an embodiment of a network environment including a local machine in communication with a remote machine;
图1B-1E是描述有益于此处所描述的方法和系统的计算机的实施例的框图;1B-1E are block diagrams depicting embodiments of computers useful for the methods and systems described herein;
图1F是描述虚拟化环境的一个实施例的框图;Figure 1F is a block diagram depicting one embodiment of a virtualization environment;
图2是描述用于优化对虚拟盘映像的至少一个块进行归档的过程的系统的一个实施例的框图;Figure 2 is a block diagram describing one embodiment of a system for optimizing the process of archiving at least one block of a virtual disk image;
图3是描述用于优化对虚拟盘映像的至少一个块进行归档的过程的方法的一个实施例的流程图。Figure 3 is a flowchart describing one embodiment of a method for optimizing the process of archiving at least one block of a virtual disk image.
具体实施方式detailed description
现参考图1A,描述了网络环境的实施例。总的来说,网络环境包括经由一个或者多个网络104与一个或者多个远程机器106a-106n(总的还称为服务器106或者远程机器106)通信的一个或者多个本地机器102a-102n(总的还称为本地机器102、客户机102、客户节点102、客户机器102、客户计算机102、客户装置102、端点102或端点节点102)。在一些实施例中,本地机器102既有作为客户节点寻求访问服务器所提供资源的能力,也有作为服务器向其他客户机102a-102n提供对所寄载的资源的访问的能力。Referring now to FIG. 1A, an embodiment of a network environment is depicted. In general, the network environment includes one or more local machines 102a-102n ( Also collectively referred to as local machine 102, client machine 102, client node 102, client machine 102, client computer 102, client device 102, endpoint 102, or endpoint node 102). In some embodiments, the local machine 102 has the ability to both act as a client node seeking access to resources provided by the server and to act as a server providing access to hosted resources to other client machines 102a-102n.
虽然图1A示出了在本地机器102和远程机器106之间的网络104,本地机器102和远程机器106可以位于相同的网络104上。网络104可为局域网(LAN)(例如公司内网),城域网(MAN),或者广域网(WAN)(例如因特网或万维网)。在一些实施例中,在本地机器102和远程机器106之间可以有多个网络104。在这些实施例的一个中,网络104’(未示出)可为专用网并且网络104可为公网。在这些实施例的另一个中,网络104’可为专用网并且网络104’可为公网。在又一个实施例中,网络104和104’可都为专用网。而在另一个实施例中,网络104和104’可都为公网。Although FIG. 1A shows a network 104 between a local machine 102 and a remote machine 106 , the local machine 102 and the remote machine 106 may be on the same network 104 . The network 104 may be a local area network (LAN) such as a corporate intranet, a metropolitan area network (MAN), or a wide area network (WAN) such as the Internet or the World Wide Web. In some embodiments, there may be multiple networks 104 between the local machine 102 and the remote machine 106 . In one of these embodiments, network 104' (not shown) may be a private network and network 104 may be a public network. In another of these embodiments, the network 104' can be a private network and the network 104' can be a public network. In yet another embodiment, networks 104 and 104' may both be private networks. Yet in another embodiment, the networks 104 and 104' may both be public networks.
网络104可以是任何类型和/或形式的网络,并且可包括任意下述网络:点对点网络,广播网络,广域网,局域网,电信网络,数据通信网络,计算机网络,ATM(异步传输模式)网络,SONET(同步光纤网络)网络,SDH(同步数字体系)网络,无线网络和有线网络。在一些实施例中,网络104可以包括无线链路,诸如红外信道或者卫星频带。网络104的拓扑可为总线型、星型或环型网络拓扑。网络104可以具有对于本领域普通技术人员所熟知的、能够支持此处描述的操作的任何这样的网络拓扑。网络可包括利用用于移动装置间通信的任一或一些协议的移动电话网络,这些协议包括:AMPS、TDMA、CDMA、GSM、GPRS或UMTS。在一些实施例中,不同类型的数据可以通过不同协议传输。在其他实施例中,同一类型的数据可通过不同协议传输。Network 104 may be any type and/or form of network and may include any of the following: point-to-point network, broadcast network, wide area network, local area network, telecommunications network, data communications network, computer network, ATM (Asynchronous Transfer Mode) network, SONET (Synchronous Optical Network) network, SDH (Synchronous Digital Hierarchy) network, wireless network and wired network. In some embodiments, network 104 may include wireless links, such as infrared channels or satellite frequency bands. The topology of the network 104 may be a bus, star or ring network topology. Network 104 may have any such network topology known to those of ordinary skill in the art that is capable of supporting the operations described herein. The network may comprise a mobile telephone network utilizing any one or several protocols for communication between mobile devices including: AMPS, TDMA, CDMA, GSM, GPRS or UMTS. In some embodiments, different types of data may be transmitted via different protocols. In other embodiments, the same type of data may be transmitted via different protocols.
在一些实施例中,系统可包括多个逻辑分组的远程机器106。在这些实施例的一个中,服务器的逻辑分组可以被称为服务器群38。在这些实施例的又一个中,远程机器106可为地理上分散的。在其他实施例中,服务器群38可以作为单个实体被管理。仍在其他实施例中,服务器群38包括多个服务器群38。每个服务器群38内的远程机器106可能是异构的---一个或多个远程机器106可根据一种类型的操作系统平台(例如,WINDOWS NT、WINDOWS 2003或WINDOWS 2008,所有这些都是由华盛顿州Redmond的Microsoft公司出品的)操作,而一个或多个其它远程机器106可根据另一类型的操作系统平台(例如,Unix或Linux)操作。In some embodiments, the system may include a plurality of logically grouped remote machines 106 . In one of these embodiments, the logical grouping of servers may be referred to as a server farm 38 . In yet another of these embodiments, the remote machines 106 may be geographically dispersed. In other embodiments, server farm 38 may be managed as a single entity. In still other embodiments, the server farm 38 includes a plurality of server farms 38 . The remote machines 106 within each server farm 38 may be heterogeneous - one or more of the remote machines 106 may be based on a type of operating system platform (e.g., WINDOWS NT, WINDOWS 2003, or WINDOWS 2008, all of which are by Microsoft Corporation of Redmond, Washington), while one or more other remote machines 106 may operate according to another type of operating system platform (eg, Unix or Linux).
每个服务器群38的远程机器106不必与同一服务器群38中的另一个远程机器106在物理上接近。因此,逻辑上分组为服务器群38的远程机器106组可以是使用广域网(WAN)连接或城域网(MAN)连接来互联的。例如,服务器群38可包括物理上位于不同大陆或大陆、国家、州、城市、校园或房间的不同区域的远程机器106。如果远程机器106使用局域网(LAN)连接或一些直连形式进行连接,则可增加服务器群38中的远程机器106间的数据传送速度。The remote machine 106 of each server farm 38 need not be in physical proximity to another remote machine 106 in the same server farm 38 . Accordingly, groups of remote machines 106 logically grouped into server farms 38 may be interconnected using wide area network (WAN) connections or metropolitan area network (MAN) connections. For example, server farm 38 may include remote machines 106 that are physically located on different continents or different regions of continents, countries, states, cities, campuses, or houses. Data transfer speeds between remote machines 106 in server farm 38 may be increased if remote machines 106 are connected using a local area network (LAN) connection or some form of direct connection.
远程机器106可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器,或防火墙。在一些实施例中,远程机器106提供远程认证拨入用户服务,并且可被称为RADIUS服务器。在其他实施例中,远程机器106可以有作为应用服务器或者作为主应用服务器工作的能力。仍在其他实施例中,远程机器106是刀片服务器。在其他实施例中,远程机器106执行向用户或客户计算机102提供对计算环境访问的虚拟机。Remote machine 106 may be a file server, application server, web server, proxy server, appliance, network device, gateway, application gateway, gateway server, virtualization server, deployment server, SSL VPN server, or firewall. In some embodiments, remote machine 106 provides remote authentication dial-in user service and may be referred to as a RADIUS server. In other embodiments, the remote machine 106 may have the capability to function as an application server or as a master application server. In still other embodiments, the remote machine 106 is a blade server. In other embodiments, the remote machine 106 executes a virtual machine that provides the user or client computer 102 with access to the computing environment.
在一个实施例中,远程机器106可包括活动目录。远程机器106可以是应用加速设备。对于其中远程机器106是应用加速设备的实施例,远程机器106可提供包括防火墙功能、应用防火墙功能,或负载平衡功能的功能。在一些实施例中,远程机器106包括诸如由位于美国加州San Jose的Citrix应用网络组、位于美国加州Mountain View,的Silver Peak Systems公司、位于美国加州San Francisco的Riverbed Technology公司、位于美国华盛顿州Seattle的F5Networks公司或位于美国加州Sunnyvale的JuniperNetworks公司制造的设备系列中的一个的设备。In one embodiment, remote machine 106 may include Active Directory. Remote machine 106 may be an application acceleration device. For embodiments where the remote machine 106 is an application acceleration device, the remote machine 106 may provide functionality including firewall functionality, application firewall functionality, or load balancing functionality. In some embodiments, the remote machine 106 includes a computer such as those developed by Citrix Application Networks Group of San Jose, CA; Silver Peak Systems, Inc. of Mountain View, CA; Riverbed Technology, Inc. of San Francisco, CA; of Seattle, WA. A device from one of the family of devices manufactured by F5Networks, Inc. or JuniperNetworks, Inc. of Sunnyvale, California.
在一些实施例中,远程机器106代表本地机器102的用户执行应用。在其他实施例中,远程机器106执行虚拟机,该虚拟机提供执行会话,在该执行会话中应用代表本地机器102的用户来执行。在这些实施例的一个中,该执行会话是所寄载的桌面会话。在这些实施例的另一个中,该执行会话提供对计算环境的访问,该计算环境包括如下的一个或多个:应用、多个应用、桌面应用、以及在其中可执行一个或多个应用的桌面会话。In some embodiments, the remote machine 106 executes the application on behalf of a user of the local machine 102 . In other embodiments, the remote machine 106 executes a virtual machine that provides an execution session in which an application executes on behalf of a user of the local machine 102 . In one of these embodiments, the execution session is a hosted desktop session. In another of these embodiments, the execution session provides access to a computing environment that includes one or more of: an application, a plurality of applications, a desktop application, and an Desktop session.
在一些实施例中,本地机器102与远程机器106通信。在一个实施例中,本地机器102与服务器群38中的远程机器106之一直接通信。在又一个实施例中,本地机器102执行程序邻近应用(a program neighborhoodapplication)以与服务器群38内的远程机器106通信。在又一个实施例中,远程机器106提供主节点的功能。在一些实施例中,本地机器102通过网络104与服务器群38中的远程机器106通信。例如通过网络104,本地机器102可以请求执行服务器群38中的远程机器106a-106n所寄载的各种应用,并接收应用执行结果的输出进行显示。在一些实施例中,只有主节点提供这样的功能,即识别和提供与远程机器106b相关的地址信息所需的功能,所述远程机器106b寄载所请求的应用。In some embodiments, the local machine 102 communicates with the remote machine 106 . In one embodiment, the local machine 102 communicates directly with one of the remote machines 106 in the server farm 38 . In yet another embodiment, the local machine 102 executes a program neighborhood application to communicate with the remote machine 106 within the server farm 38 . In yet another embodiment, the remote machine 106 provides the functionality of a master node. In some embodiments, a local machine 102 communicates with a remote machine 106 in a server farm 38 over a network 104 . For example, through the network 104, the local machine 102 may request to execute various applications hosted by the remote machines 106a-106n in the server farm 38, and receive the output of the application execution results for display. In some embodiments, only the master node provides the functionality needed to identify and provide address information associated with the remote machine 106b hosting the requested application.
在一个实施例中,远程机器106提供web服务器的功能。在又一个实施例中,远程机器106a接收来自本地机器102的请求,将该请求转发到第二远程机器106b,并用远程机器106b对该请求的响应来对本地机器102的请求进行响应。在又一个实施例中,远程机器106a获得对本地机器102可用的应用的列举,以及与寄载由该应用的列举所识别的应用的远程机器106b相关联的地址信息。在又一个实施例中,远程机器106使用web接口提供对本地机器102的请求的响应。在一个实施例中,本地机器102直接与远程机器106通信以访问所识别的应用。在又一个实施例中,本地机器102接收通过执行远程机器106上所识别的应用而产生的输出数据,例如显示数据。In one embodiment, remote machine 106 provides the functionality of a web server. In yet another embodiment, a remote machine 106a receives a request from a local machine 102, forwards the request to a second remote machine 106b, and responds to the local machine 102's request with a response from the remote machine 106b to the request. In yet another embodiment, the remote machine 106a obtains an enumeration of applications available to the local machine 102 and address information associated with the remote machine 106b hosting the application identified by the enumeration of applications. In yet another embodiment, the remote machine 106 provides responses to requests from the local machine 102 using a web interface. In one embodiment, the local machine 102 communicates directly with the remote machine 106 to access the identified application. In yet another embodiment, the local machine 102 receives output data, such as display data, generated by execution of the identified application on the remote machine 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 Divis ion公司提供的GOTOMEETING,位于美国加利福尼亚州Santa Clara的WebEx有限公司提供的WEBEX,或者位于美国华盛顿州Redmond的微软公司提供的Microsoft Office LIVE MEETING。In some embodiments, a remote machine 106 or server farm 38 may run one or more applications, such as an application providing thin client computing or a remote display presentation application. In one embodiment, the remote machine 106 or server farm 38 executes as an application any part of the CITRIX ACCESS SUITE from Citrix Systems, Inc. (e.g., the product METAFRAME or CITRIX PRESENTATIONSERVER), any of the following products produced by Citrix Systems, Inc.: CITRIX XENAPP, Any one of CITRIX XENDESKTOP, CITRIX ACCESS GATEWAY, and/or MICROSOFT WINDOWS terminal services produced by Microsoft Corporation. In yet another embodiment, the application is an ICA client developed by Citrix Systems, Inc. of Fort Lauderdale, Florida, USA. In yet another embodiment, the remote machine 106 can run an application, for example, an application server, a web or Internet server that provides e-mail services such as MICROSOFT EXCHANGE, manufactured by Microsoft Corporation of Redmond, Washington, USA, or Desktop sharing server, or collaborative server. In yet another embodiment, any application may include any type of hosted service or product, such as GOTOMEETING provided by Citrix Online Division, Inc., Santa Barbara, California, USA, and WebEx, Inc., Santa Clara, California, USA. WEBEX, or Microsoft Office LIVE MEETING provided by Microsoft Corporation in Redmond, Washington, USA.
本地机器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有限公司开发的Virtual-D协议。该应用可使用任何类型的协议,并且它可为,例如,HTTP客户端、FTP客户端、Oscar客户端或Telnet客户端。在其它实施例中,该应用包括与互联网协议电话(VoIP)通信相关的任何类型的软件,例如软IP电话。在进一步的实施例中,该应用包括与实时数据通信相关的任一应用,例如用于流式传输视频和/或音频的应用。The local machine 102 may execute, operate, or otherwise provide an application, which may be any type and/or form of software, program, or executable instruction, such as any type and/or form of web browser, web-based client, A client-server application, thin-client computing client, ActiveX control, or Java applet, or any other type and/or form of executable instructions that can be executed on the local machine 102 . In some embodiments, the application may be a server-based or remote-based application executing on the remote machine 106 on behalf of the local machine 102 . In other embodiments, the remote machine 106 may display output to the local machine 102 using any thin-client protocol, presentation layer protocol, or remote display protocol, such as those provided by Citrix Systems, Inc. of Ft. Lauderdale, Florida, USA. Independent Computing Architecture (ICA) protocol produced; Remote Desktop Protocol (RDP) produced by Microsoft Corporation in Redmond, Washington, USA; X11 protocol; Virtual Network Computing (VNC) protocol produced by AT&T Bell Laboratories; SPICE protocol from Sunnyvale, VA and Qumranet Ltd., Raanana, Israel; Net2Display protocol from VESA, Milpitas, CA; PC-over-IP from Teradici, Burnaby, BC, Canada protocols; the TCX protocol, produced by Wyse Technology, Inc., San Jose, CA; the THINC protocol, developed by Columbia University, New York, NY; or the Virtual-D protocol, developed by Desktone, Inc., Chelmsford, MA. The application can use any type of protocol, and it can be, for example, an HTTP client, FTP client, Oscar client or Telnet client. In other embodiments, the application includes any type of software related to Voice over Internet Protocol (VoIP) communications, such as a soft IP phone. In a further embodiment, the application includes any application related to real-time data communication, such as an application for streaming video and/or audio.
本地机器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。The local machine 102 and the remote machine 106 may be deployed as and/or execute on any type and form of computing device, such as a computer, network device or device capable of communicating with any type and form of network and performing the operations described herein . 1B and 1C depict block diagrams of a computing device 100 for implementing embodiments of a local machine 102 or a remote machine 106 . As shown in FIGS. 1B and 1C , each computing device 100 includes a central processing unit 121 and a main memory unit 122 . As shown in Figure IB, computing device 100 may include storage device 128, installation device 116, network interface 118, I/O controller 123, display devices 124a-124n, keyboard 126, and pointing device 127, such as a mouse. Storage 128 may include, but is not limited to, operating systems, software, and client agents 120 . As shown in FIG. 1C, each computing device 100 may also include additional optional components, such as a memory port 103, a bridge 170, one or more input/output devices 130a-130n (generally indicated by reference numeral 130), and communication with a central The cache memory 140 communicates with the processing unit 121 .
中央处理单元121是响应并处理从主存储器单元122取出的指令的任意逻辑电路。在一些实施例中,中央处理单元121由微处理器单元提供,例如:由位于美国加利福尼亚州Mountain View的Intel公司制造的微处理器单元;由位于美国伊利诺伊州Schaumburg的Motorola公司制造的微处理器单元;由位于美国加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;RS/6000处理器,由位于美国纽约州White Plains的InternationalBusiness Machines公司制造的微处理器单元;或者由位于美国加利福尼亚州Sunnyvale的Advanced Micro Devices公司制造的微处理器单元。计算装置100可以基于这些处理器中的任意一种,或者能够如此处所述方式运行的任意其它处理器。Central processing unit 121 is any logic circuit that responds to and processes instructions fetched from main memory unit 122 . In some embodiments, central processing unit 121 is provided by a microprocessor unit, such as: a microprocessor unit manufactured by Intel Corporation of Mountain View, California, USA; a microprocessor manufactured by Motorola Corporation of Schaumburg, IL, USA units; microprocessor units manufactured by Transmeta Corporation, Santa Clara, CA, USA; RS/6000 processors, microprocessor units manufactured by International Business Machines, Inc., White Plains, NY, USA; or by Sunnyvale, CA, USA Microprocessor unit manufactured by Advanced Micro Devices. Computing device 100 may be based on any of these processors, or any other processor capable of functioning as described herein.
主存储器单元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、PC100SDRAM、双倍数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接内存总线DRAM(DRDRAM)或铁电RAM(FRAM)。主存储器122可以基于上述存储器芯片的任意一种,或者能够如此处所述方式运行的任意其它可用存储器芯片。在图1B所示的实施例中处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1C描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1C中主存储器122可以是DRDRAM。Main memory unit 122 may be one or more memory chips capable of storing data and allowing microprocessor 121 to directly access arbitrary memory locations, such as static random access memory (SRAM), burst SRAM, or synchronous burst SRAM (BSRAM), Dynamic Random Access Memory (DRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Out RAM (EDO RAM), Extended Data Out DRAM (EDO DRAM), Burst Extended Data Out DRAM (BEDO DRAM), Enhanced DRAM (EDRAM), Synchronous DRAM (SDRAM), JEDEC SRAM, PC100SDRAM, Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), Direct Memory Bus DRAM (DRDRAM ) or ferroelectric RAM (FRAM). Main memory 122 may be based on any of the memory chips described above, or any other available memory chip capable of functioning as described herein. In the embodiment shown in FIG. 1B , processor 121 communicates with main memory 122 via system bus 150 (described in more detail below). FIG. 1C depicts an embodiment of computing device 100 in which the processor communicates directly with main memory 122 through memory port 103 . For example, main memory 122 may be DRDRAM in FIG. 1C.
图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通信。FIG. 1C depicts an embodiment in which main processor 121 communicates directly with cache memory 140 through a secondary bus, sometimes referred to as a backside bus. In other embodiments, main processor 121 communicates with cache memory 140 using system bus 150 . Cache memory 140 typically has a faster response time than main memory 122 and is typically provided by SRAM, BSRAM, or EDRAM. In the embodiment shown in FIG. 1B , processor 121 communicates with various I/O devices 130 via local system bus 150 . A variety of different buses may be used to connect central processing unit 121 to any of I/O devices 130, including VESA VL bus, ISA bus, EISA bus, Micro Channel Architecture (MCA) bus, PCI bus, PCI-X bus, PCI -Express bus or NuBus. For embodiments where the I/O device is a video display 124, the processor 121 may communicate with the display 124 using an advanced graphics port (AGP). FIG. 1C depicts an embodiment of computer 100 in which main processor 121 communicates directly with I/O device 130b via HYPERTRANSPORT, RAPIDIO, or INFINIBAND communication technology. Figure 1C also depicts an embodiment in which local bus and direct communication are mixed: processor 121 communicates with I/O device 130a using a local interconnect bus while communicating directly with I/O device 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闪存驱动系列装置。There may be a variety of I/O devices 130a - 130n in computing device 100 . Input devices include keyboards, mice, trackpads, trackballs, microphones, and graphics tablets. Output devices include video displays, speakers, inkjet printers, laser printers, and dye-sublimation printers. As shown in FIG. 1B , the I/O devices may be controlled by an I/O controller 123 . The I/O controller may control one or more I/O devices, such as a keyboard 126 and a pointing device 127 (such as a mouse or light pen). Additionally, the I/O device may also provide storage and/or installation media 116 for the computing device 100 . In other embodiments, computing device 100 may provide a USB connection (not shown) to accept a handheld USB storage device, such as the line of USB flash drives manufactured by Twintech Industry, Inc. of Los Alamitos, California, USA.
再次参考图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一个发行版获得。Referring again to FIG. 1B , computing device 100 may support any suitable mounting device 116, such as a floppy disk drive, CD-ROM drive, CD-R/RW drive, DVD - ROM drive, tape drive of various formats, USB device, hard drive or any other device suitable for installing software and programs. Computing device 100 may also include storage devices, such as one or more hard drives or a redundant array of independent disks, for storing an operating system and other related software, as well as for storing application software programs such as any programs related to client agent 120 . Alternatively, any of the mounting devices 116 may be used as a storage device. Additionally, the operating system and software can be run from a bootable medium such as a bootable CD such as KNOPPIX, a bootable CD for GNU/Linux available from knoppix.net as a GNU/Linux distribution version obtained.
此外,计算装置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公司制造的Ci trix网关协议的隧道协议来与其他计算装置100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行这里所说明的操作的任意类型的网络的任意其它装置。Additionally, computing device 100 may include network interface 118 to interface with network 104 over a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.11, T1, T3, 56kb, X.25 , SNA, DECNET), broadband connections (such as ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET), wireless connections, or some combination of any or all of the above. A variety of communication protocols can be used (such as TCP/IP, IPX, SPX, NetBIOS, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), RS232, IEEE802.11, IEEE802.11a, IEEE802.11b, IEEE802. 11g, CDMA, GSM, WiMax, and Direct Asynchronous Connection) to establish a connection. In one embodiment, the computing device 100 may pass through any type and/or form of gateway or gateway such as Secure Sockets Layer (SSL) or Transport Layer Security (TLS), or by Citrix Systems, Inc. of Ft. Lauderdale, Florida, USA. Manufactured Citrix gateway protocol tunneling protocol to communicate with other computing devices 100'. Network interface 118 may include a built-in network adapter, network interface card, PCMCIA network card, CardBus network adapter, wireless network adapter, USB network adapter, modem, or network adapter suitable for docking computing device 100 to a network capable of communicating and performing the operations described herein. Any other device of any type of network.
在一些实施例中,计算装置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的各种方式和实施例。In some embodiments, computing device 100 may include or be connected to multiple display devices 124a-124n, each of which may be of the same or different type and/or form. Accordingly, any of the I/O devices 130a-130n and/or the I/O controller 123 may include any type and/or form of suitable hardware, software, or combination of hardware and software to support, allow, or provide Apparatus 100 connects to and uses multiple display devices 124a-124n. For example, computing device 100 may include any type and/or form of video adapters, video cards, drivers, and/or libraries to interface with, communicate with, connect to, or otherwise use display devices 124a-124n. In one embodiment, a video adapter may include multiple connectors to interface with multiple display devices 124a-124n. In other embodiments, computing device 100 may include multiple video adapters, each connected to one or more of display devices 124a-124n. In some embodiments, any portion of the operating system of computing device 100 may be configured to use multiple displays 124a-124n. In other embodiments, one or more of display devices 124a-124n may be provided by one or more other computing devices, such as computing devices 100a and 100b connected to computing device 100 (eg, via a network). These embodiments may include any type of software designed and constructed to use another computer's display device as the second display device 124a of the computing device 100 . Those of ordinary skill in the art will recognize and appreciate the various ways and embodiments in which the computing device 100 can be configured to have multiple display devices 124a-124n.
在进一步的实施例中,I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线、串行SCSI总线。In further embodiments, I/O device 130 may be a bridge between system bus 150 and an external communication bus, such as USB bus, Apple Desktop Bus, RS-232 serial connection, SCSI bus, FireWire Bus, FireWire800 bus, Ethernet bus, AppleTalk bus, Gigabit Ethernet bus, Asynchronous Transfer Mode bus, HIPPI bus, Super HIPPI bus, SerialPlus bus, SCI/LAMP bus, Fiber Channel bus, Serial SCSI bus.
图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的微软公司出品;由位于美国加利福尼亚州Cupert ino的苹果计算机公司出品的MAC OS;由位于美国纽约州Armonk的国际商业机器公司出品的OS/2;以及由位于美国犹他州Salt LakeCity的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或形式的Unix操作系统,以及其它。A computing device 100 of the type depicted in FIGS. 1B and 1C typically operates under the control of an operating system that controls the scheduling of tasks and access to system resources. Computing device 100 may run any operating system, such as any version of the MICROSOFT WINDOWS operating system; various distributions of Unix and Linux operating systems; any version of MAC OS for Macintosh computers; any embedded operating system; any real-time operating system; Any open source operating system; any proprietary operating system; any operating system for a mobile computing device, or any other operating system capable of running on a computing device and performing the operations described herein. Typical operating systems include, but are not limited to: WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT3.51, WINDOWS NT 4.0, WINDOWS 7, WINDOWS CE, WINDOWS XP, and WINDOWS VISTA, all of which are managed by Microsoft Corporation, Redmond, Washington; MAC OS, Apple Computer, Cupertino, California, USA; OS/2, International Business Machines Corporation, Armonk, New York, USA; and MacOS, Salt Lake City, Utah, USA A freely available Linux operating system or any type and/or form of Unix operating system distributed by Caldera Corporation, among others.
计算装置100可以是任意工作站、电话、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或其他便携电信装置、媒体播放装置、游戏系统、移动计算装置,或能够通信并有足够的处理器能力和存储容量以执行此处所述的操作的任意其它类型和/或形式的计算、电信或者媒体装置。例如,计算机装置100可包括由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的IPOD系列装置、由位于日本东京的索尼公司出品的PLAYSTATION2、PLAYSTATION3或PERSONAL PLAYSTATION PORTABLE(PSP)装置,由位于日本京都的Nintendo有限公司出品的NINTENDO DS、NINTENDOGAMEBOY、NINTENDO GAMEBOY ADVANCED或NINTENDO REVOLUTION装置,或者由位于美国华盛顿州Redmond的微软公司出品的XBOX或XBOX 360装置。Computing device 100 may be any workstation, telephone, desktop computer, laptop or notebook computer, server, palmtop computer, mobile phone or other portable telecommunications device, media player, gaming system, mobile computing device, or Any other type and/or form of computing, telecommunications, or media device having sufficient processor power and storage capacity to perform the operations described herein. For example, the computer device 100 may include an IPOD series device produced by Apple Computer Inc. of Cupertino, California, a PLAYSTATION2, PLAYSTATION3 or PERSONAL PLAYSTATION PORTABLE (PSP) device produced by Sony Corporation located in Tokyo, Japan, and a Nintendo Co., Ltd. located in Kyoto, Japan. NINTENDO DS, NINTENDO GAMEBOY, NINTENDO GAMEBOY ADVANCED, or NINTENDO REVOLUTION device, Inc., or an XBOX or XBOX 360 device manufactured by Microsoft Corporation, Redmond, Washington, USA.
在一些实施例中,计算装置100可以有不同的处理器、操作系统以及符合该装置的输入装置。例如,在一个实施例中,计算装置100是由Palm有限公司出品的TREO180、270、600、650、680、700p、700w/wx、750、755p、800w、Centro或Pro智能电话。在这些实施例的一些中,TERO智能电话是在PalmOS操作系统的控制下操作并且包括笔输入装置以及五向导航装置。In some embodiments, computing device 100 may have different processors, operating systems, and input devices consistent with the device. For example, in one embodiment, computing device 100 is a TREO 180, 270, 600, 650, 680, 700p, 700w/wx, 750, 755p, 800w, Centro, or Pro smartphone manufactured by Palm Incorporated. In some of these embodiments, the TERO smartphone operates under the control of the PalmOS operating system and includes a pen input device and a five-way navigation device.
在其他实施例中,计算装置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公司制造的移动装置。In other embodiments, computing device 100 is a mobile device, such as a JAVA-enabled cellular phone or a personal digital assistant (PDA), such as an i55sr, i58sr, i85s, i88s, i90c, i95c1, i335, i365, i570, i576, i580 , i615, i760, i836, i850, i870, i880, i920, i930, ic502, ic602, ic902, i776, or im1100, all manufactured by Motorola, Schaumburg, Illinois, USA; by Kyocera, Kyoto, Japan 6035 or 7135; or i300 or i330 manufactured by Samsung Electronics Co., Ltd., Seoul, Korea. In some embodiments, computing device 100 is a mobile device manufactured by Nokia Corporation, Finland, or by Sony Ericsson Mobile Communications AB, Lund, Sweden.
在其他实施例中,计算装置100是黑莓(Blackberry)手持或智能电话,诸如由Research InMotion有限公司制造的装置,包括黑莓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可以是任意工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行此处所述操作的其它形式的计算或者电信装置。In other embodiments, computing device 100 is a Blackberry handheld or smartphone, such as a device manufactured by Research InMotion, Inc., including Blackberry 7100 Series, 8700 Series, 7700 Series, 7200 Series, Blackberry 7520, Blackberry PEARL 8100, 8700 series, 8800 series, Blackberry Storm, Blackberry Bold, Blackberry Curve 8900, Blackberry Pearl Flip. In other embodiments, computing device 100 is a smartphone, Pocket PC, Pocket PC phone, or other handheld mobile device that supports Microsoft Windows Mobile Software. Additionally, computing device 100 may be any workstation, desktop computer, laptop or notebook computer, server, palmtop computer, mobile phone, any other computer, or computer capable of communicating and having sufficient processor power and storage capacity to perform the tasks described herein. Other forms of computing or telecommunications devices that perform the operations described above.
在一些实施例中,计算装置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-4AVC)视频文件格式。In some embodiments, computing device 100 is a digital audio player. In one of these embodiments, computing device 100 is a digital audio player such as the Apple IPOD, IPOD Touch, IPOD NANO, and IPOD SHUFFLE series of devices manufactured by Apple Computer, Inc. of Cupertino, California, USA. In another of these embodiments, the digital audio player can function both as a portable media player and as a mass storage device. In other embodiments, computing device 100 is a digital audio player such as the DigitalAudioPlayer Select MP3 player manufactured by Samsung Electronics America, Inc. of Ridgefield Park, NJ, USA, or the Motorola m500 or m25, manufactured by Motorola Corporation of Schaumburg, Illinois, USA. device. In other embodiments, computing device 100 is a portable media player, such as the Zen Vision W, Zen Vision series, Zen Portable Media Center device, or Digital MP3 series of MP3 players manufactured by Creative Technologies, Inc. In still other embodiments, computing device 100 is a portable media player or digital audio player that supports file formats including, but not limited to, MP3, WAV, M4A/AAC, WMAProtected AAC, AIFF, Audible Audiobooks, Apple Lossless audio file format and .mov, .m4v, and .mp4MPEG-4 (H.264/MPEG-4AVC) video file formats.
在一些实施例中,计算装置100包括装置的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的一个中,计算装置100是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。在这些实施例的又一个中,计算装置100是由位于加利福尼亚州Cupertino的苹果公司制造的iPhone系列智能电话中的装置。In some embodiments, computing device 100 includes a combination of devices, such as a mobile phone combined with a digital audio player or a portable media player. In one of these embodiments, computing device 100 is a Motorola RAZR or Motorola ROKR series of combination digital audio players and mobile phones. In yet another of these embodiments, computing device 100 is a device in the iPhone series of smartphones manufactured by Apple Inc. of Cupertino, California.
在一个实施例中,计算装置102a可从远程机器106请求资源,同时向客户机102b提供远程机器106的功能。在这样的实施例中,就从远程机器106(其可以被称为服务器)接收数据而言,计算装置102a可以被称为客户机,而就第二客户机102b而言,计算装置102a可以被称为服务器。在又一个实施例中,客户机102可代表客户机102上的用户从远程机器106请求资源。In one embodiment, computing device 102a may request resources from remote machine 106 while providing functionality of remote machine 106 to client machine 102b. In such an embodiment, the computing device 102a may be referred to as a client with respect to receiving data from a remote machine 106 (which may be referred to as a server), and with respect to a second client 102b, the computing device 102a may be referred to as called the server. In yet another embodiment, client machine 102 may request a resource from remote machine 106 on behalf of a user on client machine 102 .
如图1D所示,计算装置100可以包括多个处理器,并且可以提供用于对不只一个数据片同时执行多个指令或者同时执行一个指令的功能。在一些实施例中,计算装置100可包括具有一个或多个核的并行处理器。在这些实施例的一个中,计算装置100是共享内存并行装置,具有多个处理器和/或多个处理器核,将所有可用内存作为一个全局地址空间进行访问。在这些实施例的又一个中,计算装置100是分布式存储器并行装置,具有多个处理器,每个处理器仅访问本地存储器。在这些实施例的又一个中,计算装置100既有共享的存储器又有仅由特定处理器或处理器子集访问的存储器。在这些实施例的又一个中,如多核微处理器的计算装置100将两个或多个独立处理器组合在一个封装中,通常在一个集成电路(IC)中。在这些实施例的又一个中,计算装置100包括具有单元宽带引擎(CELL BROADBAND ENGINE)架构的芯片,并包括高能处理器单元以及多个协同处理单元,高能处理器单元和多个协同处理单元通过内部高速总线连接在一起,可以将内部高速总线称为单元互连总线。As shown in FIG. 1D , computing device 100 may include multiple processors and may provide functionality for concurrently executing multiple instructions on more than one piece of data or simultaneously executing one instruction. In some embodiments, computing device 100 may include a parallel processor having one or more cores. In one of these embodiments, the computing device 100 is a shared memory parallel device with multiple processors and/or multiple processor cores accessing all available memory as one global address space. In yet another of these embodiments, the computing device 100 is a distributed memory parallel device having multiple processors each accessing only local memory. In yet another of these embodiments, the computing device 100 has both shared memory and memory accessed only by certain processors or subsets of processors. In yet another of these embodiments, computing device 100, such as a multi-core microprocessor, combines two or more separate processors in one package, typically in one integrated circuit (IC). In still another of these embodiments, the computing device 100 includes a chip with a cell broadband engine (CELL BROADBAND ENGINE) architecture, and includes a high-energy processor unit and a plurality of collaborative processing units, and the high-energy processor unit and the plurality of collaborative processing units pass through The internal high-speed buses are connected together, and the internal high-speed buses may be referred to as cell interconnect buses.
在一些实施例中,处理器提供用于对多个数据片同时执行单个指令(SIMD)的功能。其他实施例中,处理器提供用于对多个数据片同时执行多个指令(MIMD)的功能。又一个实施例中,处理器可以在单个装置中使用SIMD和MIMD核的任意组合。In some embodiments, the processor provides functionality for simultaneous execution of a single instruction (SIMD) on multiple slices of data. In other embodiments, the processor provides functionality for executing multiple instructions simultaneously (MIMD) on multiple pieces of data. In yet another embodiment, the processor may use any combination of SIMD and MIMD cores in a single device.
在一些实施例中,计算装置100可包括图形处理单元。图1E所示的这些实施例的一个中,计算装置100包括至少一个中央处理单元121和至少一个图形处理单元。在这些实施例的又一个中,计算装置100包括至少一个并行处理单元和至少一个图形处理单元。在这些实施例的又一个中,计算装置100包括任意类型的多个处理单元,多个处理单元中的一个包括图形处理单元。In some embodiments, computing device 100 may include a graphics processing unit. In one of these embodiments, shown in FIG. 1E , computing device 100 includes at least one central processing unit 121 and at least one graphics processing unit. In yet another of these embodiments, computing device 100 includes at least one parallel processing unit and at least one graphics processing unit. In yet another of these embodiments, computing device 100 includes a plurality of processing units of any type, one of the plurality of processing units comprising a graphics processing unit.
现参考图1F,该框图描述虚拟化环境400的一个实施例。总体而言,计算装置100包括管理程序层、虚拟化层和硬件层。管理程序层包括管理程序161(也称为虚拟化管理器),其通过在虚拟化层中执行的至少一个虚拟机来分配和管理对硬件层中的多个物理资源(例如处理器221和盘228)的访问。虚拟化层包括至少一个操作系统171和分配给至少一个操作系统171的多个虚拟资源。虚拟资源可包括而不限于多个虚拟处理器132a、132b、132c(总称为132)和虚拟盘142a、142b、142c(总称为142),以及如虚拟存储器和虚拟网络接口的虚拟资源。可将多个虚拟资源和操作系统称为虚拟机166。虚拟机166可包括控制操作系统165,该控制操作系统165与管理程序161通信,并用于执行应用以管理并配置计算装置100上的其他虚拟机。Referring now to FIG. 1F , a block diagram depicts one embodiment of a virtualization environment 400 . In general, computing device 100 includes a hypervisor layer, a virtualization layer, and a hardware layer. The hypervisor layer includes a hypervisor 161 (also referred to as a virtualization manager) that allocates and manages access to multiple physical resources (such as processors 221 and disks) in the hardware layer through at least one virtual machine executing in the virtualization layer. 228) access. The virtualization layer includes at least one operating system 171 and a plurality of virtual resources allocated to the at least one operating system 171 . Virtual resources may include, without limitation, multiple virtual processors 132a, 132b, 132c (collectively 132) and virtual disks 142a, 142b, 142c (collectively 142), as well as virtual resources such as virtual memory and virtual network interfaces. The number of virtual resources and operating systems may be referred to as virtual machines 166 . Virtual machine 166 may include a control operating system 165 that communicates with hypervisor 161 and is used to execute applications to manage and configure other virtual machines on computing device 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。Referring now to FIG. 1F , more specifically, hypervisor 161 may provide virtual resources to the operating system in any manner that emulates an operating system that can access a physical device. The hypervisor 161 may provide virtual resources to any number of guest operating systems 171a, 171b (collectively 171). In some embodiments, computing device 100 executes one or more hypervisors. In these embodiments, a hypervisor may be used to simulate virtual hardware, partition physical hardware, virtualize physical hardware, and execute virtual machines that provide access to a computing environment. Hypervisors may include those manufactured by VMWare, Palo Alto, California; the XEN hypervisor (an open source product whose development is overseen by the Open Source Xen.org Consortium); HyperV, VirtualServer, or Virtual PC management provided by Microsoft Corporation program, or otherwise. In some embodiments, a computing device 100 that executes a hypervisor that creates a virtual machine platform on which guest operating systems can execute is referred to as a host server. In one of these embodiments, for example, computing device 100 is a XEN SERVER offered by Citrix Systems, Inc. of Fort Lauderdale, Florida, USA.
一些实施例中,管理程序161在计算装置上执行的操作系统之内执行。在这些实施例的一个中,执行操作系统和管理程序161的计算装置可被视为具有宿主操作系统(执行在计算装置上的操作系统),和客户操作系统(在由管理程序161提供的计算资源分区内执行的操作系统)。其他实施例中,管理程序161和计算装置上的硬件直接交互而不是在宿主操作系统上执行。在这些实施例的一个中,管理程序161可被视为在“裸金属(bare metal)”上执行,所述“裸金属”指包括计算装置的硬件。In some embodiments, hypervisor 161 executes within an operating system executing on a computing device. In one of these embodiments, a computing device executing an operating system and hypervisor 161 may be considered to have a host operating system (the operating system executing on the computing device), and a guest operating system (the operating system executing within the resource partition). In other embodiments, the hypervisor 161 interacts directly with hardware on the computing device rather than executing on a host operating system. In one of these embodiments, the hypervisor 161 may be considered to execute on "bare metal," which refers to the hardware comprising the computing device.
一些实施例中,管理程序161可以产生操作系统171在其中执行的虚拟机166a-c(总称为166)。在这些实施例的一个中,管理程序161加载虚拟机映像以创建虚拟机166。在这些实施例的又一个中,管理程序161在虚拟机166内执行操作系统171。仍在这些实施例的又一个中,虚拟机166执行操作系统171。In some embodiments, hypervisor 161 may generate virtual machines 166a-c (collectively 166) within which operating system 171 executes. In one of these embodiments, hypervisor 161 loads a virtual machine image to create virtual machine 166 . In yet another of these embodiments, hypervisor 161 executes operating system 171 within virtual machine 166 . In yet another of these embodiments, virtual machine 166 executes operating system 171 .
一些实施例中,管理程序161控制在计算装置100上执行的虚拟机166的处理器调度和内存划分。在这些实施例的一个中,管理程序161控制至少一个虚拟机166的执行。在这些实施例的又一个中,管理程序161向至少一个虚拟机166呈现由计算装置100提供的至少一个硬件资源的抽象。其他实施例中,管理程序161控制是否以及如何将物理处理器能力呈现给虚拟机166。In some embodiments, hypervisor 161 controls processor scheduling and memory partitioning for virtual machines 166 executing on computing device 100 . In one of these embodiments, hypervisor 161 controls the execution of at least one virtual machine 166 . In yet another of these embodiments, hypervisor 161 presents an abstraction of at least one hardware resource provided by computing device 100 to at least one virtual machine 166 . In other embodiments, hypervisor 161 controls whether and how physical processor capabilities are presented to virtual machines 166 .
控制操作系统165可以执行用于管理和配置客户操作系统的至少一个应用。一个实施例中,控制操作系统165可以执行管理应用,如包括如下用户接口的应用,该用户接口为管理员提供对用于管理虚拟机执行的功能的访问,这些功能包括用于执行虚拟机、中止虚拟机执行或者识别要分配给虚拟机的物理资源类型的功能。又一个实施例中,管理程序161在由管理程序161创建的虚拟机166内执行控制操作系统165。又一个实施例中,控制操作系统165在被授权直接访问计算装置100上的物理资源的虚拟机166上执行。一些实施例中,计算装置100a上的控制操作系统165a可以通过管理程序161a和管理程序161b之间的通信与计算装置100b上的控制操作系统165b交换数据。这样,一个或多个计算装置100可以和一个或多个其他计算装置100交换有关处理器或资源池中可用的其他物理资源的数据。在这些实施例的一个中,这种功能允许管理程序管理分布在多个物理计算装置上的资源池。在这些实施例的又一个中,多个管理程序管理在一个计算装置100上执行的一个或多个客户操作系统。The control operating system 165 may execute at least one application for managing and configuring the guest operating systems. In one embodiment, control operating system 165 may execute a management application, such as an application that includes a user interface that provides administrators with access to functions for managing the execution of virtual machines, including functions for executing virtual machines, The ability to suspend virtual machine execution or identify the type of physical resource to allocate to a virtual machine. In yet another embodiment, the hypervisor 161 executes the control operating system 165 within a virtual machine 166 created by the hypervisor 161 . In yet another embodiment, the control operating system 165 executes on a virtual machine 166 that is authorized to directly access physical resources on the computing device 100 . In some embodiments, the control operating system 165a on the computing device 100a can exchange data with the control operating system 165b on the computing device 100b through the communication between the hypervisor 161a and the hypervisor 161b. In this manner, one or more computing devices 100 may exchange data with one or more other computing devices 100 regarding processors or other physical resources available in the resource pool. In one of these embodiments, this functionality allows a hypervisor to manage a pool of resources distributed across multiple physical computing devices. In yet another of these embodiments, hypervisors manage one or more guest operating systems executing on a computing device 100 .
一个实施例中,控制操作系统165在被授权与至少一个客户操作系统171交互的虚拟机166上执行。又一个实施例中,客户操作系统171通过管理程序161和控制操作系统165通信,以请求访问盘或网络。仍在又一个实施例中,客户操作系统171和控制操作系统165可通过由管理程序161建立的通信信道通信,例如,通过由管理程序161提供的多个共享存储器页面。In one embodiment, the control operating system 165 executes on a virtual machine 166 that is authorized to interact with at least one guest operating system 171 . In yet another embodiment, guest operating system 171 communicates with control operating system 165 through hypervisor 161 to request access to a disk or network. In yet another embodiment, guest operating system 171 and control operating system 165 may communicate through a communication channel established by hypervisor 161 , eg, through a plurality of shared memory pages provided by hypervisor 161 .
一些实施例中,控制操作系统165包括用于直接与由计算装置100提供的网络硬件通信的网络后端驱动器。在这些实施例的一个中,网络后端驱动器处理来自至少一个客户操作系统110的至少一个虚拟机请求。其他实施例中,控制操作系统165包括用于与计算装置100上的存储元件通信的块后端驱动器。在这些实施例的一个中,块后端驱动器基于从客户操作系统171接收的至少一个请求从存储元件读写数据。In some embodiments, control operating system 165 includes network backend drivers for communicating directly with network hardware provided by computing device 100 . In one of these embodiments, the network backend driver handles at least one virtual machine request from at least one guest operating system 110 . In other embodiments, the control operating system 165 includes block back-end drivers for communicating with storage elements on the computing device 100 . In one of these embodiments, the block backend driver reads and writes data from the storage element based on at least one request received from the guest operating system 171 .
一个实施例,控制操作系统165包括工具堆栈164。其他实施例中,工具堆栈164提供如下功能:和管理程序161交互、和其他控制操作系统165(例如位于第二计算装置100b上)通信,或者管理计算装置100上的虚拟机166b、166c。又一个实施例中,工具堆栈164包括自定义应用,其用于向虚拟机群的管理员提供改进的管理功能。一些实施例中,工具堆栈164和控制操作系统165中的至少一个包括管理API,其提供用于远程配置并控制计算装置100上运行的虚拟机166的接口。其他实施例中,控制操作系统165通过工具堆栈164和管理程序161通信。In one embodiment, control operating system 165 includes tool stack 164 . In other embodiments, the tool stack 164 provides functions for interacting with the hypervisor 161 , communicating with other control operating systems 165 (eg, located on the second computing device 100 b ), or managing virtual machines 166 b , 166 c on the computing device 100 . In yet another embodiment, tool stack 164 includes custom applications for providing improved management functionality to administrators of virtual machine fleets. In some embodiments, at least one of tool stack 164 and control operating system 165 includes a management API that provides an interface for remotely configuring and controlling virtual machines 166 running on computing device 100 . In other embodiments, the control operating system 165 communicates with the hypervisor 161 through the tool stack 164 .
一个实施例中,管理程序161在由管理程序161创建的虚拟机166内执行客户操作系统171。又一个实施例中,客户操作系统171为计算装置100的用户提供对计算环境中的资源的访问。又一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对计算装置100的用户可用的其他资源。又一个实施例中,可通过多个访问方法将资源传送给计算装置100,这些方法包括但不限于:常规的直接在计算装置100上安装、通过应用流的方法传送给计算装置100、将由在第二计算装置100’上执行资源产生的并通过表示层协议传送给计算装置100的输出数据传送给计算装置100、将通过在第二计算装置100’上执行的虚拟机执行资源所产生的输出数据传送给计算装置100、或者从连接到计算装置100的移动存储装置(例如USB设备)执行或者通过在计算装置100上执行的虚拟机执行并且产生输出数据。一些实施例中,计算装置100将执行资源所产生的输出数据传输给另一个计算装置100’。In one embodiment, hypervisor 161 executes guest operating system 171 within virtual machine 166 created by hypervisor 161 . In yet another embodiment, guest operating system 171 provides a user of computing device 100 with access to resources in the computing environment. In yet another embodiment, a resource includes a program, application, document, file, applications, files, executable program file, desktop environment, computing environment, or other resource available to a user of computing device 100 . In yet another embodiment, the resource can be transferred to the computing device 100 through a plurality of access methods, these methods include but are not limited to: conventional direct installation on the computing device 100, transfer to the computing device 100 through the method of application streaming, and transfer to the computing device 100 by the The output data generated by executing the resource on the second computing device 100' and transmitted to the computing device 100 through the presentation layer protocol is transmitted to the computing device 100, and the output generated by executing the resource through the virtual machine executed on the second computing device 100' The data is transferred to the computing device 100, or executed from a removable storage device (eg, a USB device) connected to the computing device 100 or executed by a virtual machine executing on the computing device 100 and producing output data. In some embodiments, a computing device 100 transmits output data generated by executing resources to another computing device 100'.
一个实施例中,客户操作系统171和该客户操作系统171在其上执行的虚拟机结合形成完全虚拟化虚拟机,该完全虚拟化虚拟机并不知道自己是虚拟机,这样的机器可称为“Domain U HVM(硬件虚拟机)虚拟机”。又一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。在又一个实施例中,完全虚拟化机可包括驱动器,其通过和管理程序161通信提供功能。这样的实施例中,驱动器可意识到自己在虚拟化环境中执行。In one embodiment, the guest operating system 171 and the virtual machine on which the guest operating system 171 executes combine to form a fully virtualized virtual machine, and the fully virtualized virtual machine does not know that it is a virtual machine. Such a machine can be called "Domain U HVM (Hardware Virtual Machine) virtual machine". In yet another embodiment, the fully virtualized machine includes software that emulates a basic input/output system (BIOS) to execute an operating system in the fully virtualized machine. In yet another embodiment, a fully virtualized machine may include drivers that communicate with the hypervisor 161 to provide functionality. In such an embodiment, the driver may be aware that it is executing in a virtualized environment.
又一个实施例中,客户操作系统171和该客户操作系统171在其上执行的虚拟机结合形成超虚拟化(paravirtualized)虚拟机,该超虚拟化虚拟机意识到自己是虚拟机,这样的机器可称为“Domain U PV虚拟机”。又一个实施例中,超虚拟化机包括完全虚拟化机不包括的额外驱动器。又一个实施例中,超虚拟化机包括如上所述的被包含在控制操作系统165中的网络后端驱动器和块后端驱动器。In yet another embodiment, the guest operating system 171 and the virtual machine on which the guest operating system 171 executes combine to form a paravirtualized (paravirtualized) virtual machine, and the paravirtualized virtual machine realizes that it is a virtual machine, such a machine It can be called "Domain UP PV virtual machine". In yet another embodiment, a paravirtualized machine includes additional drivers that a fully virtualized machine does not include. In yet another embodiment, the paravirtualized machine includes network backend drivers and block backend drivers included in the control operating system 165 as described above.
现参考图2,该框图描述用于优化对虚拟盘映像的至少一个块进行归档的过程的系统的一个实施例。总的来说,该系统包括文件系统分析组件202和归档组件210。文件系统分析组件202在第一物理计算装置100a上执行。文件系统分析组件202识别虚拟盘映像文件204中存储包含文件208的数据的多个块206。归档组件210在第一物理计算装置100a上执行。归档组件210识别差异盘文件212,所述差异盘文件212存储对所识别的存储包含文件208的数据的多个块206的修改的标识214。归档组件210确定是否对文件208进行归档。归档组件210向第二物理计算装置100n传输存储包含文件208的数据的多个块206。在一些实施例中,响应于对下述中的至少一个应用过滤器:该文件的标识和对存储与该文件有关的或形成该文件的数据的块的修改的标识,归档组件210确定不对该文件进行归档。Referring now to FIG. 2, a block diagram depicts one embodiment of a system for optimizing the process of archiving at least one block of a virtual disk image. In general, the system includes a file system analysis component 202 and an archiving component 210 . The file system analysis component 202 executes on the first physical computing device 100a. File system analysis component 202 identifies number of blocks 206 in virtual disk image file 204 that store data containing file 208 . The archiving component 210 executes on the first physical computing device 100a. Archive component 210 identifies a differencing disk file 212 that stores identifications 214 of modifications to the identified number of blocks 206 that store data that includes file 208 . Archiving component 210 determines whether to archive file 208 . The archiving component 210 transmits to the second physical computing device 100n a plurality of blocks 206 storing data comprising the file 208 . In some embodiments, in response to applying a filter to at least one of: an identification of the file and an identification of modifications to blocks storing data related to or forming the file, the archiving component 210 determines not to apply the filter to the file. Files are archived.
在一些实施例中,系统分析虚拟盘映像文件内的文件以确定是否对该文件进行归档。在这些实施例的一个中,分析指示文件已经被修改、被删除或者已经过时。在这些实施例的又一个中,对文件名、文件类型或文件的其他标识符的分析的结果是确定不应该对该文件进行归档。在此处所述的方法和系统的一些实施例中,通过分析虚拟磁盘映像文件中包含文件的块并且做出对于所有文件是否归档所有块的确定,此处所述的方法和系统提供数据备份功能和对相关数据块的有效归档。In some embodiments, the system analyzes files within the virtual disk image file to determine whether to archive the file. In one of these embodiments, the analysis indicates that the file has been modified, deleted, or outdated. In yet another of these embodiments, the analysis of the file name, file type, or other identifier of the file determines that the file should not be archived as a result. In some embodiments of the methods and systems described herein, the methods and systems described herein provide data backup by analyzing the blocks in a virtual disk image file that contain the files and making a determination whether to archive all blocks for all files functions and efficient archiving of the associated data blocks.
在一个实施例中,该系统包括在对文件进行归档之前从虚拟盘映像文件识别和移除未使用的块。在又一个实施例中,该系统包括在对文件进行归档之前从虚拟盘映像文件识别和移除不需要被归档的块的组件;例如,该系统可以访问不需要被归档的文件名或文件类型的列举并且移除存储在列举中所识别的文件的数据的块。在又一个实施例中,该系统包括在对该虚拟盘映像文件进行归档之前压缩剩余的数据的组件。In one embodiment, the system includes identifying and removing unused blocks from the virtual disk image file prior to archiving the file. In yet another embodiment, the system includes a component that identifies and removes blocks that do not need to be archived from the virtual disk image file prior to archiving the file; for example, the system can access file names or file types that do not need to be archived enumeration and removes the blocks storing data for the files identified in the enumeration. In yet another embodiment, the system includes a component that compresses remaining data prior to archiving the virtual disk image file.
现参考图2,更具体地,该文件系统分析组件202包括解析器,所述解析器用于分析虚拟盘映像文件204并且识别存储包含文件208的数据的多个块206。在一个实施例中,文件系统分析组件202包括用于识别虚拟盘映像文件204中存储包含第二文件208b的数据的第二多个块206b的功能。Referring now to FIG. 2 , and more specifically, the file system analysis component 202 includes a parser for analyzing the virtual disk image file 204 and identifying a number of blocks 206 storing data comprising the file 208 . In one embodiment, the file system analysis component 202 includes functionality for identifying a second plurality of blocks 206b in the virtual disk image file 204 storing data comprising the second file 208b.
在一个实施例中,多个块206被称为簇(cluster)。在又一个实施例中,多个块206中的块206a被称为扇区(sector)。然而,在又一个实施例中,一个块包括多个扇区。在又一个实施例中,一个块为2MB大小。在又一个实施例中,虚拟盘映像文件204具有诸如下面列出的文件格式之一:例如由美国华盛顿州Redmond的微软公司发布的虚拟硬盘文件(VHD)格式,或者由美国加利福尼亚州Palo Alto的VMware有限公司发布的虚拟机盘(VMDK)文件格式。In one embodiment, number of blocks 206 is referred to as a cluster. In yet another embodiment, a block 206a of the plurality of blocks 206 is referred to as a sector. However, in yet another embodiment, a block includes multiple sectors. In yet another embodiment, a block is 2MB in size. In yet another embodiment, the virtual disk image file 204 has a file format such as one of the following: for example, the Virtual Hard Disk File (VHD) format issued by Microsoft Corporation of Redmond, Washington, USA, or by Microsoft Corporation of Palo Alto, California, USA. The Virtual Machine Disk (VMDK) file format published by VMware Inc.
在一些实施例中,归档组件210包括策略引擎218。在这些实施例的一个中,归档组件210执行策略引擎218以做出关于是否对文件进行归档的确定。在这些实施例的又一个中,策略引擎218包括用于确定是否对文件进行归档的至少一个过滤器。在其他实施例中,归档组件210访问在数据库中存储的数据以确定是否对文件进行归档。在其他实施例中,归档组件210访问正则表达分析组件以过滤掉不需要被归档的文件。在这些实施例的一个中,归档组件210包括该正则表达分析组件的功能。尽管在图2中被描述为分开的组件,但在一些实施例中,单个组件提供归档组件210和文件系统分析组件202的功能。In some embodiments, archiving component 210 includes a policy engine 218 . In one of these embodiments, archiving component 210 executes policy engine 218 to make a determination as to whether to archive the file. In yet another of these embodiments, policy engine 218 includes at least one filter for determining whether to archive a file. In other embodiments, the archiving component 210 accesses data stored in a database to determine whether to archive the file. In other embodiments, the archiving component 210 accesses a regular expression analysis component to filter out files that do not need to be archived. In one of these embodiments, archiving component 210 includes the functionality of the regular expression analysis component. Although depicted as separate components in FIG. 2 , in some embodiments, a single component provides the functionality of archiving component 210 and file system analysis component 202 .
现参考图3,该流程图描述用于优化对虚拟盘映像的至少一个块进行归档的过程的方法的一个实施例。总的来说,该方法300包括由在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块(302)。该方法包括由在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含该文件的数据的多个块中的至少一个的修改的标识(304)。该方法包括由归档组件确定是否对该文件进行归档(306)。该方法包括由归档组件向第二物理计算装置传输存储包含该文件的数据的多个块(308)。在一些实施例中,该方法包括由归档组件确定不对该多个块进行归档。Referring now to FIG. 3 , a flowchart depicts one embodiment of a method for optimizing the process of archiving at least one block of a virtual disk image. In general, the method 300 includes identifying, by a file system analysis component executing on a first physical computing device, a plurality of blocks in a virtual disk image file that store data comprising the file (302). The method includes identifying, by an archiving component executing on the first physical computing device, a difference disk file that stores an identification of a modification to at least one of the identified plurality of blocks storing data containing the file (304 ). The method includes determining, by the archiving component, whether to archive the file (306). The method includes transmitting, by the archiving component to the second physical computing device, a plurality of blocks storing data comprising the file (308). In some embodiments, the method includes determining, by the archiving component, not to archive the plurality of chunks.
现参考图3,更具体地,在第一物理计算装置上执行的文件系统分析组件识别虚拟盘映像文件中存储包含文件的数据的多个块(302)。在一些实施例中,文件系统分析组件202从虚拟盘映像文件204的块提取通过该虚拟盘映像文件204可访问的逻辑驱动器(其也可以被称为卷)的列表。在这些实施例的一个中,逻辑驱动器的列表识别对于一个或多个逻辑驱动器的启动扇区的位置;所述启动扇区可以是存储可执行数据的扇区,通过该扇区使逻辑驱动器对第一物理计算装置100a的用户可用。在这些实施例的又一个中,文件系统分析组件202从所识别的启动扇区提取标识文件208和存储包含文件208的数据的多个块206之间的映射220的位置的数据;该映射220可以被称为主文件表。在又一个实施例中,文件系统分析组件202存储该映射220的副本。在又一个实施例中,文件系统分析组件202访问该映射220以识别存储文件208的多个块206。在一些实施例中,文件系统分析组件202向归档组件210传输映射220的位置的标识。Referring now to FIG. 3 , and more specifically, a file system analysis component executing on a first physical computing device identifies a number of blocks in a virtual disk image file that store data containing the file ( 302 ). In some embodiments, the file system analysis component 202 extracts from the blocks of the virtual disk image file 204 a list of logical drives (which may also be referred to as volumes) accessible through the virtual disk image file 204 . In one of these embodiments, the list of logical drives identifies the location of a boot sector for one or more logical drives; the boot sector may be a sector that stores executable data through which the logical drive A user of the first physical computing device 100a is available. In yet another of these embodiments, the file system analysis component 202 extracts from the identified boot sector data identifying the location of a mapping 220 between the file 208 and the plurality of blocks 206 storing data containing the file 208; the mapping 220 May be referred to as the master file table. In yet another embodiment, the file system analysis component 202 stores a copy of the map 220 . In yet another embodiment, the file system analysis component 202 accesses the map 220 to identify the number of blocks 206 in which the file 208 is stored. In some embodiments, file system analysis component 202 transmits to archiving component 210 an identification of the location of map 220 .
在其他实施例中,文件系统分析组件202基于对映射220中数据的分析生成第二映射222。在这些实施例的一个中,文件系统分析组件202生成将多个块206与文件208关联的第二映射222。在这些实施例的又一个中,第二映射222是映射220的逆映射,其提供用于根据一个或多个数据块的标识来识别文件名的功能。In other embodiments, file system analysis component 202 generates second map 222 based on analysis of data in map 220 . In one of these embodiments, file system analysis component 202 generates second map 222 that associates number of blocks 206 with file 208 . In yet another of these embodiments, the second map 222 is an inverse map of the map 220 that provides functionality for identifying filenames based on the identification of one or more data blocks.
在第一物理计算装置上执行的归档组件识别差异盘文件,所述差异盘文件存储对所识别的存储包含该文件的数据的多个块中的至少一个的修改的标识(304)。在一个实施例中,差异盘文件212包括对虚拟盘映像文件204的引用。An archiving component executing on the first physical computing device identifies a differencing disk file that stores an identification of modifications to at least one of the identified plurality of blocks storing data containing the file (304). In one embodiment, the difference disk file 212 includes a reference to the virtual disk image file 204 .
在一个实施例中,归档组件210从文件系统分析组件202接收映射222的副本。在又一个实施例中,归档组件210接收存储映射222的块的位置的标识。在又一个实施例中,归档组件210从文件系统分析组件202接收多个块206的标识和文件208的标识(例如,文件名),所述多个块206存储包含文件208的数据。In one embodiment, archiving component 210 receives a copy of map 222 from file system analysis component 202 . In yet another embodiment, the archive component 210 receives an identification of the location of the chunk of the storage map 222 . In yet another embodiment, the archiving component 210 receives from the file system analysis component 202 an identification of a plurality of blocks 206 storing data comprising the file 208 and an identification (eg, a file name) of the file 208 .
在一个实施例中,归档组件210分析由差异盘212存储的数据以确定该差异盘文件212是否存储对文件系统分析组件202所识别的多个块206的修改的标识214。在又一个实施例中,归档组件210从差异盘文件212提取数据并且确定该数据是否包括匹配所述标识214的标识。在又一个实施例中,归档组件210确定差异盘212存储对多个块206的修改的标识。在又一个实施例中,归档组件210检索文件208的标识(例如,从文件系统分析组件202接收的文件名)。在一些实施例中,文件系统分析组件202和归档组件210一起提供通常由文件系统驱动程序和其他组件提供的功能。因此,在这些实施例的一个中,归档组件210可以确定差异盘文件212是否包括对最初存储在虚拟盘映像文件205中的文件的修改,而不必挂载差异盘文件212或虚拟盘映像文件204。In one embodiment, the archiving component 210 analyzes the data stored by the differencing disk 212 to determine whether the differencing disk file 212 stores an identification 214 of modifications to the plurality of blocks 206 identified by the file system analyzing component 202 . In yet another embodiment, the archiving component 210 extracts data from the differencing disk file 212 and determines whether the data includes an identifier that matches said identifier 214 . In yet another embodiment, the archiving component 210 determines that the delta disk 212 stores identifications of modifications to the plurality of chunks 206 . In yet another embodiment, the archiving component 210 retrieves the identification of the file 208 (eg, the filename received from the file system analysis component 202). In some embodiments, file system analysis component 202 and archive component 210 together provide functionality typically provided by file system drivers and other components. Thus, in one of these embodiments, archive component 210 can determine whether difference disk file 212 includes modifications to files originally stored in virtual disk image file 205 without having to mount difference disk file 212 or virtual disk image file 204 .
在一些实施例中,归档组件210访问存储对在给定时间内已经发生变化的每个文件208的指示的数据结构。在其他实施例中,归档组件210访问存储对文件208在给定时间内是否已经发生变化的指示的数据结构。在其他实施例中,差异盘文件212存储这样的数据结构。然而,在其他实施例中,虚拟盘映像文件204存储该数据结构。在这些实施例的一个中,归档组件210不需要分析差异盘212,而是可以访问由虚拟盘映像文件204所存储的该数据结构。在另外的实施例中,这样的数据结构可以作为例如被称为更新序列号(Update Sequence Number,USN)或变化日志(Change Journal)的结构而被提供。在这些实施例的一个中,该数据结构是通过记录功能生成的,所述记录功能在该数据结构中记录在虚拟盘映像文件204中发生的每次变化。In some embodiments, archiving component 210 accesses a data structure that stores an indication of each file 208 that has changed within a given time. In other embodiments, archiving component 210 accesses a data structure that stores an indication of whether file 208 has changed within a given time. In other embodiments, differencing disk file 212 stores such data structures. However, in other embodiments, the virtual disk image file 204 stores the data structure. In one of these embodiments, archiving component 210 need not analyze differencing disk 212 , but can access the data structure stored by virtual disk image file 204 . In further embodiments, such a data structure may be provided as, for example, a structure known as an Update Sequence Number (USN) or a Change Journal. In one of these embodiments, this data structure is generated by a recording function that records every change that occurs in the virtual disk image file 204 in the data structure.
归档组件确定是否对文件进行归档(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进行归档。The archiving component determines whether to archive the file (306). In one embodiment, archiving component 210 determines whether to archive file 208 in response to applying a filter to the identification of file 208; for example, archiving component 210 may determine whether to archive file 208 based on all or part of the filename. In yet another embodiment, archiving component 210 determines whether to archive file 208 in response to the identification of differential disk 212 by applying a filter; file. In yet another embodiment, the archiving component 210 determines whether to archive the file 208 in response to applying a filter to the identifiers 214 of modifications to the plurality of blocks 206 stored by the differencing disk 212; for example, the archiving component 210 may determine whether to archive based on File 208 is archived according to the type of modifications made to the file. In yet another embodiment, the archiving component 210 determines not to archive the file for which the identification 214 indicates that it is about to be deleted. In yet another embodiment, the archiving component 210 determines whether to archive the file 208 in response to a determination by the policy engine 218 as to whether to archive the file 208 .
在一些实施例中,归档组件210确定不对被识别为具有特定文件类型的文件进行归档。在这些实施例的一个中,例如,归档组件208可以应用策略并确定不对模板文件或临时文件进行归档。在这些实施例的又一个中,归档组件208可以应用策略并确定不对页面文件进行归档。在这些实施例的又一个中,归档组件208可以应用策略并确定不对休眠文件进行归档。在这些实施例的又一个中,归档组件208可以应用策略并确定不对特定于在第一物理计算装置100a上虚拟盘映像文件204的执行的文件进行归档。在其他实施例中,归档组件208访问不需要被归档的文件类型的列举。在其他实施例中,归档组件208访问不需要被归档的关联文件的文件名的列举。在另外的实施例中,例如,在由虚拟盘映像文件204存储的注册表内存储的数据包括不需要被归档的文件的列举。In some embodiments, the archiving component 210 determines not to archive files identified as having a particular file type. In one of these embodiments, for example, archiving component 208 can apply a policy and determine not to archive template files or temporary files. In yet another of these embodiments, the archiving component 208 can apply a policy and determine not to archive the page file. In yet another of these embodiments, archiving component 208 can apply a policy and determine not to archive the hibernation file. In yet another of these embodiments, the archiving component 208 can apply a policy and determine not to archive files specific to the execution of the virtual disk image file 204 on the first physical computing device 100a. In other embodiments, the archiving component 208 accesses an enumeration of file types that do not need to be archived. In other embodiments, the archiving component 208 accesses an enumeration of filenames of associated files that need not be archived. In further embodiments, for example, the data stored within the registry stored by the virtual disk image file 204 includes a listing of files that do not need to be archived.
在一些实施例中,归档组件210确定不对文件208进行归档,因为对块206的修改的标识的分析指示该修改已经使原始文件过时。在这些实施例的一个中,归档组件210确定对由差异盘212存储的第二多个块进行归档,而不是对由虚拟盘映像文件214存储的多个块206进行归档。在这些实施例的又一个中,归档组件210确定对由虚拟盘映像文件214存储的第二多个块206b进行归档,而不是对最初识别的多个块206a进行归档。In some embodiments, archiving component 210 determines not to archive file 208 because analysis of the identification of the modification of block 206 indicates that the modification has made the original file obsolete. In one of these embodiments, archiving component 210 determines to archive the second plurality of blocks stored by differencing disk 212 instead of archiving plurality of blocks 206 stored by virtual disk image file 214 . In yet another of these embodiments, the archiving component 210 determines to archive the second plurality of blocks 206b stored by the virtual disk image file 214 rather than the initially identified plurality of blocks 206a.
归档组件向第二物理计算装置传输存储包含该文件的数据的多个块(308)。在一个实施例中,归档组件210响应于确定对文件208进行归档来向第二物理计算装置100b传输多个块206。在又一个实施例中,归档组件210响应于确定不对文件208进行归档,不传输多个块206。在又一个实施例中,归档组件210传输存储包含对文件208的修改的数据的多个块,所述多个块由标识214来进行识别。在一些实施例中,归档组件210将该多个块206作为具有与虚拟盘映像文件204的格式大体上相似的格式的虚拟盘映像文件来进行传输。在这些实施例的一个中,通过传输具有与原始虚拟盘映像文件204的格式大体上相似格式的文件,而不是例如传输具有显著不同格式的文件,归档组件210为请求访问所传输的多个块的用户消除了重新格式化该所传输的多个块以便访问所传输的多个块的需要。The archiving component transmits to the second physical computing device a plurality of blocks storing data comprising the file (308). In one embodiment, the archiving component 210 transmits the plurality of chunks 206 to the second physical computing device 100b in response to determining to archive the file 208 . In yet another embodiment, archiving component 210 does not transmit number of chunks 206 in response to determining not to archive file 208 . In yet another embodiment, archiving component 210 transmits a plurality of blocks storing data containing modifications to file 208 , the plurality of blocks identified by identifier 214 . In some embodiments, archiving component 210 transmits the plurality of chunks 206 as a virtual disk image file having a format substantially similar to that of virtual disk image file 204 . In one of these embodiments, archiving component 210 transfers the multiple blocks for requesting access by transferring a file having a format substantially similar to that of original virtual disk image file 204, rather than, for example, transferring a file having a substantially different format. The user of ® eliminates the need to reformat the transferred chunks in order to access the transferred chunks.
在此处所述的方法和系统的一些实施例中,通过分析虚拟盘映像文件204中包含文件的块并做出是否对它们全部进行归档的确定,所述的方法和系统提供了数据备份功能和对相关数据块的有效归档。In some embodiments of the methods and systems described herein, the described methods and systems provide data backup functionality by analyzing the blocks of files contained in the virtual disk image file 204 and making a determination whether to archive them all and effective archiving of the associated data blocks.
应该理解,上文描述的系统可提供这些组件的任意多个或每一个并且这些组件可以在独立机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。可以使用编程和/或工程技术将上文所描述的系统和方法实现为方法、装置或产品以提供软件、固件、硬件或上述的任何组合。此外,上述系统和方法可作为在一件或多件制造产品上实现或在其中实现的一个或多个计算机可读程序而被提供。此处使用的术语“制造产品”旨在包括从一个或多个计算机可读的装置、固件、可编程逻辑、存储器装置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)等)、电子装置、计算机可读的非易失存储单元(例如,CD-ROM、软盘、硬盘等)可访问的并嵌入其中的代码或逻辑。所述制造产品可以是从经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问的文件服务器可访问的。所述制造产品可以是闪存卡或磁带。所述制造产品包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件制造产品上或其中。It should be understood that the systems described above may provide any or each of these components and that these components may be provided on stand-alone machines or, in some embodiments, on multiple machines in a distributed system. The systems and methods described above can be implemented as a method, apparatus or article of manufacture using programming and/or engineering techniques to provide software, firmware, hardware or any combination of the above. Additionally, the systems and methods described above may be provided as one or more computer-readable programs implemented on or in one or more articles of manufacture. As used herein, the term "article of manufacture" is intended to include data from one or more computer-readable devices, firmware, programmable logic, memory devices (e.g., EEPROM, ROM, PROM, RAM, SRAM, etc.), hardware (e.g., Integrated circuit chips, Field Programmable Gate Arrays (FPGAs, Application Specific Integrated Circuits (ASICs), etc.), electronic devices, computer-readable non-volatile storage units (e.g., CD-ROMs, floppy disks, hard disks, etc.) accessible and embed code or logic within it. The article of manufacture may be accessible from a file server providing access to the computer readable program via network transmission lines, wireless transmission media, signals propagated through space, radio waves, infrared signals, or the like. The article of manufacture may be a flash memory card or tape. The article of manufacture includes hardware logic and software or programmable code embodied in a computer readable medium for execution by a processor. In general, a computer readable program can be implemented in any programming language, such as LISP, PERL, C, C++, C#, PROLOG, or any bytecode language such as JAVA. A software program may be stored as object code on or in one or more articles of manufacture.
已经描述了用于优化对虚拟磁盘映像的至少一个块进行归档的过程的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含本发明的概念的其他实施例。因此,本发明的公开内容不应当受限于某些实施例,而仅仅有所附的权利要求的精神与范围所限制。Having described certain embodiments of a method and system for optimizing the process of archiving at least one block of a virtual disk image, it will be apparent to those skilled in the art that other embodiments incorporating the concepts of the present invention may be used. Accordingly, the present disclosure should not be limited to certain embodiments, but only by the spirit and scope of the appended claims.
| 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/060354WO2011081948A2 (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 |
| Publication Number | Publication Date |
|---|---|
| CN102754092A CN102754092A (en) | 2012-10-24 |
| CN102754092Btrue CN102754092B (en) | 2016-11-30 |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1688981A (en)* | 2002-08-09 | 2005-10-26 | 网络装置公司 | Storage virtualization by layering virtual disk objects on a file system |
| US20070208788A1 (en)* | 2006-03-01 | 2007-09-06 | Quantum Corporation | Data storage system including unique block pool manager and applications in tiered storage |
| CN101443746A (en)* | 2006-05-18 | 2009-05-27 | 李尚奎 | Method for protecting client and server |
| US20090228669A1 (en)* | 2008-03-10 | 2009-09-10 | Microsoft Corporation | Storage Device Optimization Using File Characteristics |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1688981A (en)* | 2002-08-09 | 2005-10-26 | 网络装置公司 | Storage virtualization by layering virtual disk objects on a file system |
| US20070208788A1 (en)* | 2006-03-01 | 2007-09-06 | Quantum Corporation | Data storage system including unique block pool manager and applications in tiered storage |
| CN101443746A (en)* | 2006-05-18 | 2009-05-27 | 李尚奎 | Method for protecting client and server |
| US20090228669A1 (en)* | 2008-03-10 | 2009-09-10 | Microsoft Corporation | Storage Device Optimization Using File Characteristics |
| Publication | Publication Date | Title |
|---|---|---|
| EP2443554B1 (en) | Methods and systems for importing a device driver into a guest computing environment | |
| US9122414B2 (en) | Methods and systems for optimizing a process of archiving at least one block of a virtual disk image | |
| EP2368182B1 (en) | Systems and methods for facilitating migration of virtual machines among a plurality of physical machines | |
| CN102272726B (en) | Systems and methods for facilitating virtualization of a heterogeneous processor pool | |
| CN102334114B (en) | Systems and methods for optimizing a process of determining a location of data identified by a virtual hard drive address | |
| EP2283422B1 (en) | Methods and systems for patching multiple disk images derived from a common base disk image | |
| US9130903B2 (en) | Unified out of band management system for desktop and server sessions | |
| CN102656578B (en) | Methods and systems for displaying, on a first machine, data associated with a drive of a second machine, without mapping the drive | |
| EP2372519B1 (en) | Storage optimization selection within a virtualization environment | |
| US8972984B2 (en) | Methods and systems for virtualizing audio hardware for one or more virtual machines | |
| CN102754077B (en) | The safety virtualization environment that can guide from external media device | |
| EP2842029A2 (en) | Trusted file indirection | |
| CN102754092B (en) | Method and system for optimizing the process of archiving at least one block of a virtual disk image |
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | Granted publication date:20161130 |