CN102446121B - Allocating virtual machines according to user-specific virtual machine metrics - Google Patents

Allocating virtual machines according to user-specific virtual machine metrics Download PDF

Info

Publication number
CN102446121B
CN102446121B CN 201110148568 CN201110148568A CN102446121B CN 102446121 B CN102446121 B CN 102446121B CN 201110148568 CN201110148568 CN 201110148568 CN 201110148568 A CN201110148568 A CN 201110148568A CN 102446121 B CN102446121 B CN 102446121B
Authority
CN
China
Prior art keywords
user
virtual machine
session
embodiments
virtual
Prior art date
Application number
CN 201110148568
Other languages
Chinese (zh)
Other versions
CN102446121A (en
Inventor
R·夏普
D·斯科特
Original Assignee
思杰系统有限公司
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
Priority to US12/902,542 priority Critical patent/US8856783B2/en
Priority to US12/902542 priority
Application filed by 思杰系统有限公司 filed Critical 思杰系统有限公司
Publication of CN102446121A publication Critical patent/CN102446121A/en
Application granted granted Critical
Publication of CN102446121B publication Critical patent/CN102446121B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Abstract

性能监控系统根据使用用户会话信息和虚拟机指标所确定的用户分类给用户或用户会话分配虚拟机。 Performance monitoring system classification assigned to a user or user session according to the session information and the user uses the user virtual machine metrics determined virtual machines. 性能监控系统的会话监控器被通知用户会话终止,其中用户会话访问虚拟机。 Performance monitoring system notifies the user session monitor session is terminated, a session in which the user access to virtual machines. 会话监控器响应地记录用户会话信息并且从虚拟机性能监控器获得用于所述虚拟机的虚拟机指标。 In response to the recording session monitor user session information and obtains an index for the virtual machine the virtual machine from the virtual machine performance monitor. 性能监控系统使用用户会话信息和虚拟机指标更新用户工作负载简档,并且根据用户工作负载简档对用户会话的用户进行分类。 Performance monitoring system using the user session information and virtual machine metrics to update the user workload profile, and are classified according to the user workload profile user to user session. 当收到来自用户的对虚拟机的请求,虚拟桌面架构从虚拟机管理器请求虚拟机。 Upon receiving a request for a virtual machine from the user's virtual desktop infrastructure request a virtual machine from the virtual machine manager. 虚拟机管理器响应地根据用户的分类给用户分配虚拟机。 Virtual machine manager in response to the user based on the user classification assigned to the virtual machine.

Description

根据用户指定的虚拟机指标分配虚拟机 According to user-specified virtual machine metrics assigned virtual machine

技术领域 FIELD

[0001] 本申请总的涉及给用户分配虚拟机。 [0001] The present application relates to virtual machine to the user. 本申请尤其涉及基于分配给具体用户的虚拟机指标来分配虚拟机。 The present application relates to dispense based on the virtual machine metrics assigned to a particular user's virtual machine.

背景技术 Background technique

[0002] 在许多系统中,与虚拟化系统关联的性能指标可以被存储或与一个或多个虚拟机相关联。 [0002] In many systems, the performance index associated with the virtualization system may be stored with one or more virtual machines or associated. 当用户初始化这些虚拟机中的一个时,作出关于在哪里执行虚拟机的确定。 When a user initiates these virtual machines when a determination is made on the implementation of the virtual machine where. 在许多实例中,这个确定是部分地基于所存储的或与虚拟机关联的性能指标而作出的。 In many instances, this determination is based in part on the stored or associated with the virtual machine's performance made. 因此,在这个实例以及许多其他系统中,虚拟化系统部分地根据与虚拟机关联的性能指标确定在哪里执行虚拟机。 Thus, in this example, and many other systems, the virtualization system partially determine the performance of virtual machine execution of the virtual machine where according to.

[0003] 关于在哪里执行虚拟机的决定有时是基于那个虚拟机的性能而作出的。 [0003] decision on the implementation of the virtual machine where sometimes based on the performance of the virtual machine made. 这些性能指标可包括处理器利用率、内存利用率、表示计算资源的平均利用率的值、带宽利用率等。 The performance metrics may include a processor utilization, memory utilization, a value representing the average utilization of computing resources, bandwidth utilization. 在许多实例中,这些指标不仅是虚拟机性能而且还是用户行为的结果。 In many instances, these indicators are not only the result of virtual machine performance but also user behavior. 当选择机器来执行虚拟机时,可以作这样的假设:这些性能指标表示虚拟机将施加在机器上的负载,所述机器被选择用于执行虚拟机。 When selecting a machine to execute a virtual machine, such assumptions can be made: the performance metric indicates a virtual machine load applied to the machine, the machine is selected for executing a virtual machine. 在池化的(pooled)虚拟桌面架构(VDI)环境中,可以从虚拟机池或组给用户分配虚拟机。 In the pooled (pooled) virtual desktop infrastructure (VDI) environment, you can assign users to a virtual machine from a pool or group of virtual machines. 因此施加在执行虚拟机的机器上的负载是登录到虚拟机上的用户和虚拟机所进行的活动的共同的结果。 Therefore, the load applied to the machine to perform common virtual machine is the result of active users log on to the virtual machine and the virtual machine is carried out. 现在需要的是不仅考虑虚拟机的利用率指标,而且更具体考虑当利用率指标被记录时哪个用户登录到虚拟机的系统。 What is needed now is not only to consider the utilization index of the virtual machine, and more particularly when considering which user is logged into the system when the virtual machine utilization metrics to be recorded. 针对具体用户所记录的利用率指标可被用于确定用户可能施加在虚拟机上的负载量。 Utilization metrics recorded for a particular user may be used to determine the load on the user may be applied to the virtual machine. 可以根据施加在虚拟机上的可能的负载量来给用户分配虚拟机。 A virtual machine may be allocated to users according to a possible load applied to the virtual machine.

发明内容 SUMMARY

[0004] 在一个方面,此处所描述的是用于确定在哪里执行虚拟机或如何根据与用户和被分配给用户的虚拟机相关联的指标来配置虚拟机的方法和系统。 [0004] In one aspect, described herein is executing a virtual machine or for determining how the user according to methods and indicators are assigned to the user associated with the virtual machine to the virtual machine configuration system and where. 在许多虚拟化系统中,部分地根据虚拟机所关联的历史的性能指标确定在哪里执行虚拟机以及如何配置虚拟机。 In many virtualized system, in part, to determine where the implementation of a virtual machine and how to configure virtual machines based on the performance indicators associated with the virtual machine history. 在从虚拟机池或组中给用户分配虚拟机的环境中,由虚拟机施加在物理计算机器上的工作负载可能不仅是虚拟机而且还是访问虚拟机的用户的结果。 Assigned to the user in a virtual machine from a pool or group of virtual machine environment, is applied to the physical computer by a virtual machine workloads may not only be a virtual machine to access the virtual machine but also a result of the user. 此处所描述的方法和系统通过为虚拟机选择执行环境以及基于用户的和被分配给该用户的虚拟机的历史的性能指标配置该虚拟机来解决这个问题。 Here the methods and systems described by a virtual machine selection and execution environment based on historical performance and the user is assigned to the user's virtual machine configuration of the virtual machine to solve this problem.

[0005] 在又一个方面,此处所描述的是用于根据用户的分类给用户分配虚拟机的方法和系统,其中用户的分类是根据历史的第一用户会话信息和虚拟机指标来确定的。 [0005] In yet another aspect, described herein is a method and system for a user assigned to the user classified according to the virtual machine, wherein the user classification is determined based on the first user session information and virtual machine metrics history. 在计算机器上执行的会话监控器接收第一用户会话终止的通知,其中第一用户会话访问第一虚拟机。 Notification session monitor executing on a computer receiving a first user session termination, wherein the first virtual machine accesses the first user session. 响应于第一用户会话的终止,会话监控器记录第一用户会话信息。 In response to the termination of the first user session, the first user session monitor records session information. 接着可以从虚拟机性能监控器获得用于第一虚拟机的虚拟机指标。 Virtual machine may then obtain an index for a first virtual machine from the virtual machine performance monitor. 然后,性能监控器使用第一用户会话信息和第一虚拟机指标来更新第一用户工作负载简档(profile)。 Then, the Performance Monitor uses the first user session information and the first virtual machine metrics to update the first user workload profile (profile). 第一用户工作负载简档对应于第一用户会话的第一用户。 The first user workload profile corresponds to a first user of the first user session. 接着,根据第一用户工作负载简档来对第一用户进行分类。 Next, a first user to classify the first user workload profile. 然后虚拟桌面架构可接收来自第一用户的对虚拟机的请求。 Then virtual desktop infrastructure may receive a request for a virtual machine from the first user. 响应于接收这个请求,根据第一用户的分类给第一用户分配虚拟机。 In response to receiving this request, a first virtual machine to a first user according to the user's classification.

[0006] 在一些实施例中,会话监控器在虚拟桌面架构之外执行。 [0006] In some embodiments, the session monitor executed outside a virtual desktop infrastructure.

[0007] 在其他实施例中,根据第一用户工作负载简档,第一用户可以被分类为重度用户、 中度用户或轻度用户。 [0007] In other embodiments, a first user workload profile, a first user may be classified users severe, moderate or mild user user.

[0008] 在一些实施例中,性能监控器可将所记录的第一用户会话信息映射到所获得的第一虚拟机指标。 [0008] In some embodiments, a first user can monitor the performance of the recorded session information is mapped to a first virtual machine metrics obtained.

[0009] 在其他实施例中,第一用户的分类可被存储在存储仓库中。 [0009] In other embodiments, the first user may be stored in a free storage warehouse.

[0010] 在一个实施例中,在虚拟桌面架构之外的计算机器上执行的分类模块可以执行对第一用户的分类。 [0010] In one embodiment, the computer is executing on a virtual desktop infrastructure outside the classification module may perform a first classification of the user.

[0011] 在其他实施例中,会话监控器接收第二用户会话终止的通知,其中第二用户会话访问第二虚拟机。 [0011] In other embodiments, the session monitor notifies the second user receives a session termination, wherein the second user session access to the second virtual machine. 接着,会话监控器可记录第二用户会话信息,以及可获得用于第二虚拟机的虚拟机指标。 Next, a second session monitor can record user session information, and a virtual machine available indicators for the second virtual machine. 然后,性能监控器使用第二用户会话信息和第二虚拟机指标来更新第二用户工作负载简档。 Then, the Performance Monitor using the second user session information and the second virtual machine metrics to update the second user workload profile. 第二用户工作负载简档可对应于第二用户会话的第二用户。 The second user workload profile may correspond to a second user of the second user session. 在一些实施例中,分类模块可使用第二用户工作负载简档来根据第二用户工作负载简档对第二用户进行分类。 In some embodiments, the classification module load profile can be classified according to a second user the second user workload profile using the second user's work.

[0012] 在一些实施例中,虚拟桌面架构可通过从虚拟机管理器请求虚拟机来响应第一用户对虚拟机的请求。 [0012] In some embodiments, the virtual desktop architecture in response to a first user request for a virtual machine by a request from a virtual machine a virtual machine manager. 虚拟机管理器响应于虚拟桌面架构所发出的请求,可根据第一用户的分类给第一用户分配虚拟机。 In response to a virtual machine manager virtual desktop infrastructure issued the request, the virtual machine can be assigned to the first user in accordance with a first user classification. 在一些实施例中,分配虚拟机可包括根据第一用户的分类来配置虚拟机。 In some embodiments, the virtual machine may include allocating the virtual machine configuration according to a first user classification. 在其他实施例中,分配虚拟机可包括根据第一用户的分类来选择虚拟机。 In other embodiments, assigned virtual machine may include selecting a virtual machine according to a first user classification.

附图说明 BRIEF DESCRIPTION

[0013] 在下面的附图描述了此处描述的系统和方法的某些示意性实施例,其中相同的附图标记涉及相同的元件。 [0013] In the following figures describe systems and methods described herein are certain exemplary embodiments, wherein like reference numerals refer to like elements. 这些所描述的实施例应被理解为对所公开的方法和系统的示意性说明,而不是对于本申请的任何限制。 The described embodiments are to be understood as a schematic illustration of the disclosed methods and systems, and not for any limitation of the present disclosure.

[0014] 图IA描述了提供对可执行应用程序的计算设备的远程访问的网络环境的实施例; [0014] FIG IA depicts an embodiment of a network environment to provide a computing device executable application remote access;

[0015] 图IB和图IC是描述计算设备的实施例的框图; [0015] FIGS. IB and IC is a diagram of an embodiment of a computing device is described;

[0016] 图2A和图2B是描述虚拟化环境的实施例的框图; [0016] FIGS. 2A and 2B are block diagrams of embodiments described virtualized environment;

[0017] 图3是描述虚拟化环境和虚拟桌面架构环境的实施例的框图; [0017] FIG. 3 is a block diagram of an embodiment of the virtualized environment described and virtual desktop infrastructure environment;

[0018] 图4是描述用于记录虚拟机利用率指标的方法的实施例的流程图; [0018] Figure 4 is a flowchart of an embodiment of a method of the virtual machine utilization metrics for recording;

[0019] 图5A和图5B是描述用于给用户分配虚拟机的方法的实施例的流程图; [0019] FIGS. 5A and 5B are a flowchart of an embodiment described with a user-assigned virtual machine process;

[0020] 图6是描述更新用户工作负载简档的实施例的流程图。 [0020] FIG. 6 is a flowchart of an embodiment of a user workload profile update described.

具体实施方式 Detailed ways

[0021] 图IA描述了计算环境101的一个实施例,该计算环境包括与一个或多个服务器106A-106N(总的称为"服务器106")通信的一个或多个客户机102A-102N(总的称为"客户机102")。 [0021] Fig IA describes the computing environment 101 according to one embodiment, the computing environment comprises one or more of servers 106A-106N (generally referred to as "server 106") or a plurality of communication clients 102A-102N ( generally referred to as "client 102"). 网络被安装在客户机102与服务器106之间。 Network is installed between the client 102 and the server 106.

[0022] 在一个实施例中,计算环境101可包括安装在服务器106和客户机102之间的设备。 [0022] In one embodiment, the computing environment 101 may include a device mounted between the server 106 and the client 102. 这个设备可管理客户机/服务器连接,并且在一些情况下可在多个后端服务器之间负载平衡客户机连接。 The apparatus may manage client / server connections, and in some cases can load balance between multiple clients connected to back-end servers.

[0023] 客户机102在一些实施例中可被认为是单个客户机102或客户机102的一个组, 而服务器106可被认为是单个服务器106或服务器106的一个组。 [0023] The client 102 may, in some embodiments, be considered a single group of client 102 or client 102, the server 106 may be considered to be a single server or a server group 106 of 106. 在一个实施例中,单个客户机102与不只一个服务器106通信,而在另一个实施例中,单个服务器106与不只一个客户机102通信。 In one embodiment, a single client 102 communicate with more than one server 106, 106 in another single server 102 communicating with more than one client embodiment. 在另一个实施例中,单个客户机102与单个服务器106通信。 In another embodiment, a single client machine 106 communicating with a single server 102.

[0024] 在一些实施例中,客户机102可被称为下面术语中的任何一个:客户机102、客户端、客户计算机、客户设备、客户计算设备、本地机器、远程机器、客户节点、端点、端节点或第二机器。 [0024] In some embodiments, client 102 may be referred to in any of the following terms: client 102, client, client computer, client device, the client computing device, the local machine, the remote machine, the client node, the endpoint , end node or a second machine. 在一些实施例中,服务器106可被称为下列术语中的任何一个:服务器、本地机器、远程机器、服务器群、主计算设备或第一机器。 In some embodiments, the server 106 may be referred to in any of the following terms: server, the local machine, the remote machine, a server farm, the host computing device or a first machine.

[0025] 在一个实施例中,客户机102可以是虚拟机102C。 [0025] In one embodiment, the client 102 may be a virtual machine 102C. 虚拟机102C可以是任何虚拟机,而在一些实施例中虚拟机102C可以是由XenSolution、Citrix Systems、IBM、VMware公司开发的管理程序(hypervisor)或任何其他管理程序管理的任何虚拟机。 Virtual machine 102C can be any virtual machine, and in some of the virtual machine 102C can be implemented by the XenSolution, Citrix Systems, IBM, VMware developed management program (hypervisor) or any other hypervisor management of any virtual machine. 在其他实施例中,虚拟机102C可以由任何管理程序管理,而在其他实施例中,虚拟机102C可由在服务器106上执行的管理程序或在客户机102上执行的管理程序管理。 In other embodiments, the virtual machine 102C can be managed by any management program, while in other embodiments, the hypervisor virtual machine 102C may be performed on the management server 106 or hypervisor executing on the client 102.

[0026] 在一些实施例中,客户机102可以执行、操作或者以其它方式提供应用,该应用可为下列应用中的任何一个:软件、程序、可执行指令、虚拟机、管理程序、web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、Java小程序、与类似软IP电话的网络电话(VoIP)通信相关的软件、流式传输视频和/或音频的应用、便于实时数据通信的应用、HTTP客户机、FTP客户机、Oscar客户机、Telnet客户机或可执行指令的任何其他集合。 [0026] In some embodiments, client 102 may execute, operate or otherwise provide an application, the application may be any one of the following applications: browsing software, program, executable instructions, virtual machine, hypervisor, web , a web-based client, the client - server applications, thin-client computing client, ActiveX controls, Java applets, and similar soft IP telephony Internet telephony (VoIP) communication-related software, streaming video and / or audio applications, easy to set any other real-time data communication, HTTP client, FTP client, the client Oscar, Telnet client, or executable instructions. 其他实施例中包括显示由在服务器106或其他位于远程的机器上远程执行的应用所产生的应用输出的客户设备102。 Other embodiments include a display by the application executing remotely on a server 106 or other remotely located machine generated output from client device 102 application. 在这些实施例中,客户设备102可以在应用窗口、浏览器或其他输出窗口中显不应用输出。 In these embodiments, the client device 102 may not be significant in the application output window application, a browser or other output window. 在一个实施例中,应用是桌面,而在其他实施例中,应用是产生桌面的应用。 In one embodiment, the application is a desktop, while in other embodiments, the desktop application is an application generated.

[0027] 在一些实施例中,服务器106执行远程呈现客户端或其他客户端或程序,这些客户端或程序使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用产生的显示输出并且将应用显示输出传输到远程客户机102。 [0027] In some embodiments, the server 106 executes a remote presentation client, or other client or program, which uses thin-client or client or remote display protocol to capture display output generated by an application executing on the server 106 and the application displays the output to the remote client 102. 瘦客户端或远程显示协议可以是下列协议的任何一个:由位于佛罗里达州Ft. Lauderdale的Citrix Systems公司制造的独立计算架构(ICA)协议;或由位于Washington, Redmond的Microsoft (微软)公司制造的远程桌面协议(RDP)。 Thin client or remote display protocol may be any of the following agreement: by the Florida Ft Independent Computing Architecture (ICA) Lauderdale Citrix Systems, Inc. manufactured the agreement; or those manufactured by Washington, Redmond's Microsoft (Microsoft) company. remote Desktop protocol (RDP).

[0028] 计算环境可包括不只一个服务器106A-106N,这样的服务器106A-106N逻辑上一起聚合到服务器群106中。 [0028] The computing environment may include more than one server 106A-106N, such polymeric logical server 106A-106N in a server farm 106 together. 服务器群106可包括地理上分散并且逻辑上一起聚合到服务器群106中的服务器106,或者互相之间位置接近的并且逻辑上一起聚合到服务器群106中的服务器106。 Server farm 106 may include geographically dispersed and logically polymerized together in the server farm 106 server 106, or a position close to each other and to the polymerization in the server farm 106 with the server 106 logically. 在一些实施例中,服务器群106中地理上分散的服务器106A-106N可使用WAN、MAN或LAN通信,其中不同地理区域可以被表征为:不同大陆、大陆的不同地区、不同国家、不同州、不同城市、不同校园、不同房间、或前述地理位置的任何组合。 In some embodiments, the server farm geographically dispersed server 106 106A-106N may use WAN, MAN, or LAN communications, where different geographic regions can be characterized as: different continents, different parts of the continent, different countries, different states, different cities, different schools, different rooms, or any combination of the aforementioned locations. 在一些实施例中, 服务器群106可以作为单个实体被管理,而在其它实施例中,服务器群106可包括多个服务器群106。 In some embodiments, the server farm 106 may be administered as a single entity, while in other embodiments, the server farm 106 may include a plurality of server farms 106.

[0029] 在一些实施例中,服务器群106可包括执行实质上类似的类型的操作系统平台(例如,由Washington,Redmond 的Microsoft 公司制造的WINDOWS NT、Unix、Linux 或SNOW LEOPARD)的服务器106。 [0029] In some embodiments, the server farm 106 may include performing a substantially similar type of operating system platform (e.g., the Washington, Redmond of Microsoft Corporation's WINDOWS NT, Unix, Linux, or SNOW LEOPARD) server 106. 在其他实施例中,服务器群106可包括执行第一类型操作系统平台的第一组服务器106和执行第二类型操作系统平台的第二组服务器106。 In other embodiments, the server farm 106 may include performing a first type of operating system platform 106 of the first set and the second set of servers server 106 performs a second type of operating system platform. 在其他实施例中,服务器群106可包括执行不同类型操作系统平台的服务器106。 In other embodiments, the server farm 106 may include a different type of operating system executing server platform 106.

[0030] 在一些实施例中,服务器106可为任何服务器类型。 [0030] In some embodiments, the server 106 may be any type of server. 在其他实施例中,服务器106 可以是下列服务器类型的任何一个:文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、 防火墙、web服务器、应用服务器或主应用服务器、执行活动目录的服务器106、或者执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器106。 In other embodiments, the server 106 may be any one of the following server types: a file server, application server, web server, proxy server, device, network appliance, gateway, application gateway, gateway server, virtualization server, deployment servers, SSL VPN server, firewall, web servers, application servers, or a master application server, performs the active directory server 106, or performing firewall functions provided, the application function or application server load balancing function of the acceleration program 106. 在一些实施例中, 服务器106可以是包含远程认证拨入用户服务的RADIUS服务器。 In some embodiments, the server 106 may be a RADIUS server comprises a remote authentication dial-in user services. 在服务器106包括设备的实施例中,服务器106可以是由下列制造商的任何一个制造的设备:Citrix应用网络组、 Silver Peak Systems 公司、RiVerbed Thechnology 公司、F5Networks 公司、或Juniper Networks公司。 In the embodiment includes a server device 106, the server 106 may be a device manufactured by any of the following manufacturers: Citrix Application Networking Group, Silver Peak Systems Company, RiVerbed Thechnology company, F5 Networks Corporation, or at Juniper Networks. 一些实施例中包括第一服务器106A,其接收来自客户机102的请求、转发该请求到的第二服务器106B,以及使用来自第二服务器106B的响应来对客户机102所产生的请求进行响应。 Some embodiments include a first server 106A, which receives requests from the client 102, forwards the request to a second server 106B, and 106B using the response from the second server to respond to the request generated by the client 102. 第一服务器106A可获得客户机102可用的应用列表,以及与寄载应用列表中所识别的应用的应用服务器106相关的地址信息。 The first server 106A for a list of applications available to the client 102, and a list of applications hosted by application server identified application 106 related to address information. 第一服务器106A还可使用web接口对客户机请求提供响应,并直接与客户机102通信以向客户机102提供对所识别应用的访问。 The first server 106A may also use a web interface to provide a response to the client request, and communicates with the client 102 to provide access to the identified application to the client 102 directly.

[0031] 在一些实施例中,服务器106可执行下列应用中的任何一个:使用瘦客户端协议传输应用显示数据到客户机的瘦客户端应用、远程显示呈现应用、Citrix Systems公司的CITRIX ACCESS SMTE 的任何部分,诸如METAFRAM 或者CITRIX PRESENTATION SERVER; Microsoft公司制造的MICROSOFT WINDOWS终端服务或由Citrix Systems公司开发的ICA 客户端。 [0031] In some embodiments, a server 106 may perform any of the following applications: thin client protocol to transmit display data to the thin client application client application, the remote display presentation application, Citrix Systems Company CITRIX ACCESS SMTE any part, such as METAFRAM or CITRIX PRESENTATION SERVER; MICROSOFT WINDOWS terminal services manufactured by the Microsoft Corporation or developed by Citrix Systems ICA client. 另一个实施例中包括为诸如下列应用服务器的服务器106 :提供电子邮件服务的邮件服务器,例如由Microsoft公司制造的MICROSOFT EXCHANGE ;web或Internet服务器、 桌面共享服务器,协同服务器或任何其他类型的应用服务器。 Another embodiment includes the following embodiments as an application server, such as server 106: mail server providing email services such as MICROSOFT EXCHANGE manufactured by the Microsoft Corporation; Web or Internet servers, desktop sharing server, or any other type of collaboration server application servers . 在其他实施例中服务器106 执行下列类型的所寄载的服务器应用的任何一个:Citrix0nline Division公司提供的G0T0MEETING、位于加利福尼亚州Santa Clara的WebEx公司提供的WEBEX,或者Microsoft 公司提供的Microsoft Office LIVE MEETING。 Microsoft Office LIVE MEETING WEBEX, or Microsoft's G0T0MEETING Citrix0nline Division provided by the company, located in Santa Clara, California's WebEx offers provided: server 106 to perform any of the following types of hosted servers applications in other embodiments.

[0032] 在一些实施例中,客户机102可以是寻求对服务器106提供的资源进行访问的客户机节点。 [0032] In some embodiments, client 102 may be a client node seeking to provide resource server 106 accesses. 在其他实施例中,服务器106可为客户机102或客户机节点提供对所寄载的资源的访问。 In other embodiments, the server 106 may provide access to hosted resources for the client 102 or client node. 在一些实施例中,服务器106作为主节点运行,这样它可与一个或多个客户机102 或服务器106通信。 In some embodiments, the server 106 operating as a master node, so that it can communicate with one or more clients 102 or servers 106 communicate. 在一些实施例中,主节点可识别并且向一个或多个客户机102或服务器106提供与寄载所请求的应用的服务器106相关的地址信息。 In some embodiments, the master node may identify the application and a server to one or more clients 102 or servers 106 providing 106 hosting a requested address information associated. 在其他实施例中,主节点可以是服务器群106、客户机102、客户机节点102的集群,或者设备。 In other embodiments, the master node can be a server farm 106, 102, cluster client client node 102, or device.

[0033] -个或多个客户机102和/或一个或多个服务器106可以在被安装在计算环境101中的机器和设备之间的网络104上传输数据。 [0033] - one or more clients 102 and / or 106 may transmit data on one or more servers in the network 104 between the machine and the equipment is installed in the computing environment 101. 网络104可包括一个或多个子网,且可被安装在被包含在计算环境101中的客户机102、服务器106、计算机器和设备的任何组合之间。 Network 104 may include one or more subnets, and may be mounted between the computing environment 101 be included in the client 102, server 106, and any combination of computer equipment. 在一些实施例中网络104可以是:局域网(LAN)、城域网(MAN)、广域网(WAN),包括位于客户机102和服务器106之间的多个子网104的主网104、具有专用子网104的主公共网104、具有公共子网104的主专用网104或者具有专用子网104的主专用网104。 In some embodiments, network 104 may be: local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), includes a plurality of subnets 104 of the client 104 between the main network 102 and the server 106, with dedicated sub the primary public network 104 network 104, the primary private network 104 with a public sub-network 104 or a primary private network 104 with a private subnet 104. 在进一步的实施例中网络104可以是任何的下列网络类型:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET (同步光纤网络)网络、SDH(同步数字体系)网络、无线网络、有线网络或包括诸如红外信道或者卫星频带无线链路的网络104。 In a further embodiment, the network 104 may be any of the following network types: peer to peer network, a broadcast network, a telecommunications network, a data communication network, a computer network, the ATM (Asynchronous Transfer Mode) network, SONET (Synchronous Optical Network) network, the SDH ( synchronous digital Hierarchy) network, a wireless network, a wired network or a wireless link comprises a network such as a band 104 infrared channel or satellite. 网络104的拓扑在不同的实施例中可以不同,可能的网络拓扑包括:总线型网络拓扑、 星型网络拓扑、环型网络拓扑、基于中继器的网络拓扑或者分层星型网络拓扑。 Topology of the network 104 may vary in different embodiments, possible network topologies include: a bus network topology, a star topology, ring topology network, or a network topology based on hierarchical star topology repeater. 额外的实施例中包括使用协议在移动设备间通信的移动电话网络的网络104,其中,协议可以是下列协议的任何一个:AMPS、TDMA、CDMA、GSM、GPRS UMTS或可在移动设备间传输数据的其他任何协议。 Additional embodiments include the use of protocols in the network 104 between the mobile device a mobile phone network communication, wherein, the protocol may be any one of the following protocols: AMPS, TDMA, CDMA, GSM, GPRS UMTS or may be transmitted between the mobile device data any other agreements.

[0034] 图IB所示是计算设备100的实施例,其中如图IA所示的客户机102和服务器106可以被部署为和/或被执行在此处所描述和图示的计算设备100的任何实施例上。 [0034] FIG. 100 is an embodiment of a computing device shown in FIG IB, wherein IA shown in FIG client 102 and server 106 may be deployed as described and illustrated herein as a computing device and / or perform any of the 100 Examples on embodiments. 被包含在计算设备100中的系统总线150可以和下列组件通信:中央处理单元121、主存储器122、存储装置128、输入输出(I/O)控制器123、显示设备124A-124N、安装设备116和网络接口118。 Is included in the computing device 100 and a system bus 150 may communicate the following components: a central processing unit 121, a main memory 122, a storage device 128, input-output (I / O) controller 123, a display device 124A-124N, mounting device 116 and a network interface 118. 在一个实施例中存储装置128包括:操作系统、软件程序和客户机代理120。 In one embodiment, memory device 128 comprises: an operating system, a software program, and the client agent 120. 在一些实施例中,I/O控制器123还连接到键盘126和指示设备127。 In some embodiments, I / O controller 123 is also connected to a keyboard 126 and a pointing device 127. 其他实施例中可包括连接到不只一个输入输出设备130A-130N的I/O控制器123。 Other embodiments may include more than one input connected to the output devices 130A-130N of the I / O controller 123.

[0035] 图IC描述了计算设备100的一个实施例,其中如图IA所示的客户机102和服务器106可以被部署为和/或被执行在此处所描述和图示的计算设备100的任何实施例上。 [0035] FIG IC 100 is described a computing device embodiment, wherein FIG. IA client 102 and server 106 shown may be deployed in any of the 100 and / or executed as described herein and illustrated in the computing device Examples on embodiments. 被包含在计算设备100中的系统总线150可以和下列组件通信:桥170和第一I/O设备130A。 150 may be included in the following components of the communication and computing device 100 in system bus: a first bridge 170 and I / O device 130A. 在另一个实施例中,桥170还和主中央处理单元121通信,其中中央处理单元121可进一步与第二I/O设备130B、主存储器122和高速缓冲存储器140通信。 Embodiment, the bridge 170 is in further communication master central processing unit 121, where the central processing unit 121 may be further reacted with a second I / O device 130B in another embodiment, main memory 122, communication 140 and a cache memory. I/O端口、存储器端口103和主处理器被包含在中央处理单元121中。 I / O ports, a memory port 103 and a main processor is included in the central processing unit 121.

[0036] 在计算设备100的实施例中可包括被下列组件配置的任何一个表征的中央处理单元121 :响应并处理从主存储器单元122取出的指令的逻辑电路;微处理器单元,诸如:由Intel公司制造的微处理器单元;由Motorola公司制造的微处理器单元;由加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;诸如国际商业机器公司(International Bussiness Machines)制造的RS/6000 处理器;由Advanced Micro Devices公司制造的处理器;或逻辑电路的任何其他组合。 [0036] In an embodiment of the computing device 100 may be configured to include any one of the following components characterizing a central processing unit 121: response and processing logic fetched from the main memory unit 122 instructions; microprocessor unit, such as: the the microprocessor unit manufactured by Intel Corporation; microprocessor unit manufactured by Motorola Corporation; microprocessor unit manufactured by Transmeta of Santa Clara, California company; RS companies such as IBM (International Bussiness Machines) manufactured / 6000 ; a processor, manufactured by Advanced Micro devices company; or any other combination of logic circuits. 中央处理单元122的其他实施例可包括下列任何组合:微处理器、微控制器、具有单处理核的中央处理单元、具有两个处理核的中央处理单元或具有不只一个处理核的中央处理单元。 The central processing unit 122, other embodiments may include any combination of the following: a microprocessor, a microcontroller, a central processing unit having a single processing core, having two processing cores, a central processing unit or central processing unit with more than one processing core .

[0037] 尽管图IC描述了包括单个中央处理单元121的计算设备100,但在一些实施例中计算设备100可包括一个或多个处理单元121。 [0037] Although FIG IC includes a computing device 100 described with a single central processing unit 121, but in some embodiments, computing device 100 may include one or more processing units 121. 在这些实施例中,计算设备100可存储和执行固件或其他可执行指令,这些固件或指令在被执行时,指引一个或多个处理单元121来同时执行指令或同时在一个数据片上执行指令。 In these embodiments, the computing device 100 may store and execute firmware or other executable instructions or firmware instructions which, when executed, direct the one or more processing units 121 or by executing instructions simultaneously executing instructions on a data sheet. 在其他实施例中,计算设备1〇〇可存储和执行固件或其他可执行指令,这些固件或指令在被执行时,指引一个或多个处理单元的每个执行一组指令的一部分。 In other embodiments, the computing device may store and execute 1〇〇 firmware or other executable instructions or firmware instructions which, when executed, perform a guide portion of each of a set of instructions or a plurality of processing units. 例如每个处理单元121可被指示执行程序的一部分或者程序中的特定模块。 For example, each processing unit 121 may be indicative of a portion of the program or execution of the program in the particular module.

[0038] 在一些实施例中,处理单元121可包括一个或多个处理核。 [0038] In some embodiments, the processing unit 121 may include one or more processing cores. 例如处理单元121可有两个核、四个核、8个核等。 For example, processing unit 121 may have two cores, four cores, eight cores and the like. 在一个实施例中,处理单元121可包括一个或多个并行处理核。 In one embodiment, the processing unit 121 may comprise one or more parallel processing cores. 在一些实施例中处理单元121的处理核可访问作为全局地址空间的可用内存、或在其他实施例中,计算设备100的存储器可被分段并分配到处理单元121的特定核。 In some embodiments, the processing unit as a processing core available memory access global address space 121, or in other embodiments, the computing device 100 memory may be segmented and assigned to a particular core 121 of the processing unit. 在一个实施例中,计算设备1〇〇中的一个或多个处理核或处理器的每个可访问本地存储器。 In one embodiment, a computing device 1〇〇 or more of the access to the local memory of each processing cores or processors. 在又一个实施例中,计算设备100的存储器可在一个或多个处理器或处理核之间共享,而其他存储器可被特定处理器或处理器子集访问。 In yet another embodiment, the computing device memory 100 may be shared between the one or more processors or processing cores, and the other memory can be set to access a particular processor or sub-processor. 在计算设备100包括不只一个处理单元的实施例中,多个处理单元可被包含在单个集成电路(IC)中。 In the computing device 100 includes more than one processing unit of the embodiment, a plurality of processing units may be included in a single integrated circuit (IC) in. 在一些实施例中,这些多个处理器可通过内部高速总线连接在一起,该总线可被称为元件互联总线。 In some embodiments, the plurality of processors may be connected together by an internal high-speed bus, which may be called an element interconnect bus.

[0039] 在计算设备100包括一个或多个处理单元121,或处理单元121包括一个或多个处理核的实施例中,处理器可同时在多片数据上执行单个指令(SMD),或在其他实施例中处理器可同时在多片数据上执行多个指令(MMD)。 [0039] The computing device 100 includes one or more processing units 121, 121 or the processing unit comprises one or more processing cores embodiments, the processor can simultaneously execute a single instruction (SMD) on multiple pieces of data, or in other embodiments, the processor may execute multiple instructions simultaneously (MMD) on multiple pieces of data. 在一些实施例中,计算设备100可包括任意数量的SMD和MMD处理器。 In some embodiments, the computing device 100 may include any number of processors MMD and SMD.

[0040] 在一些实施例中,计算设备100可包括图像处理器或图形处理单元(未示出)。 [0040] In some embodiments, the computing device 100 may include an image processor or a graphics processing unit (not shown). 图形处理单元可包括软件和硬件的任何组合,并且还可输入图形数据和图形指令、从所输入的数据和指令渲染图形和输出所渲染的图形。 The graphics processing unit may comprise any combination of software and hardware, and may also input pattern data and graphics instructions, graphics rendering and outputting the rendered graphics data and instructions from the input. 在一些实施例中,图形处理单元可被包含在处理单元121的内部。 In some embodiments, the graphics processing unit may be contained in the processing unit 121. 在其他实施例中,计算设备100可包括一个或多个处理单元121,其中至少一个处理单元121被专用于处理和渲染图形。 In other embodiments, the computing device 100 may include one or more processing units 121, wherein the at least one processing unit 121 is dedicated to processing and rendering graphics.

[0041] 在计算设备100的一个实施例中包括通过也称为背侧总线的第二总线与高速缓冲存储器140通信的中央处理单元,而在计算设备100的又一个实施例中包括使用系统总线150与高速缓冲存储器140通信的中央处理单元121。 [0041] 100 comprises a computing device embodiment also referred to as a backside bus via the second bus and the central processing unit cache memory 140 in communication, and in yet another embodiment, a computing device includes using a system bus 100 of the embodiment 150 communicates with cache memory 140 and a central processing unit 121. 在一些实施例中,本地系统总线150也被中央处理单元所使用来与不只一种类型的I/O设备130A-130N进行通信。 In some embodiments, the local system bus 150 can also be used to communicate with more than one type of I / O devices 130A-130N using a central processing unit. 在一些实施例中,本地系统总线150可以是下列类型总线的任何一个:VESA VL总线、ISA总线、 EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。 In some embodiments, the local system bus 150 can be any of the following types of buses: VESA VL bus, ISA bus, EISA bus, Micro Channel Architecture (MCA) bus, PCI bus, PCI-X bus, PCI-Express bus or NuBus. 计算设备100的其他实施例中包括为与中央处理单元121通信的视频显示器124的I/O设备130A-130N。 With the computing device comprises a central video processing unit 121 communicates with a display I / O devices 130A-130N 124 in other embodiments 100. 在计算设备100的其他形式中包括通过下列连接的任何一个连接到I/O设备130A-130N的处理器121,这些连接如下:。 In other forms of computing device 100 includes any of the following are connected by connection to I / O devices 130A-130N of the processor 121, which is connected as follows: 超传输(HyperTransport)、快速I/O或者InfiniBand。 HyperTransport (HyperTransport), Rapid I / O, or InfiniBand. 计算设备100的进一步的实施例包括处理器121,该处理器使用本地互连总线与一个I/O设备130A进行通信,并使用直接连接与第二I/O设备130B进行通信。 A further embodiment of a computing device 100 includes processor 121, the processor using a local interconnect bus and a communication I O devices 130A /, and using a direct connection to a second I / O device 130B communicate.

[0042] 在一些实施例中,计算设备100包括主存储器单元122和高速缓冲存储器140。 [0042] In some embodiments, the computing device 100 includes a main memory unit 122 and cache memory 140. 高速缓冲存储器140可以是任何存储器类型,且在一些实施例中可以是下列类型存储器的任何一个:SRAM、BSRAM或EDRAM。 Cache memory 140 may be any type of memory, and in some embodiments may be any one of the following types of memory: SRAM, BSRAM, or EDRAM. 其他实施例中包括的高速缓冲存储器140和主存储器单元122,可以是下列类型存储器的任何一个:静态随机访问存储器(SRAM)、Burst (脉冲串)SRAM或SynchBurst SRAM(BSRAM)、动态随机访问存储器DRAM、快速页模式DRAM(FPM DRAM)、增强DRAM (EDRAM)、扩展数据输出RAM (EDO RAM)、扩展数据输出DRAM (EDO DRAM)、 脉冲串扩展数据输出DRAM (BEDO DRAM)、增强型DRAM (EDRAM)、同步DRAM (SDRAM)、JEDEC SRAM、PClOO SDRAM、双数据传输率SDRAM (DDR SDRAM)、增强SDRAM (ESDRAM)、同步链路DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、铁电RAM(FRAM)或任何其他类型的存储器。 Cache embodiments including other embodiments of 140 and a main memory unit 122 may be any of the following types of memory: Static random access memory (SRAM), Burst (burst) the SRAM or SynchBurst SRAM (BSRAM), the dynamic random access memory DRAM, fast page mode DRAM (FPM DRAM), enhanced DRAM (EDRAM), extended data output RAM (EDO RAM), extended data output DRAM (EDO DRAM), burst extended data output DRAM (BEDO DRAM), enhanced DRAM ( EDRAM), synchronous DRAM (SDRAM), JEDEC SRAM, PClOO SDRAM, double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus DRAM (DRDRAM), ferroelectric RAM ( FRAM), or any other type of memory. 进一步的实施例包括可通过下列方式访问主存储器122的中央处理单元121,这些方式包括: 系统总线150、存储器端口103、或允许处理器121访问存储器122的其他连接、总线或端□。 A further embodiment comprises a central processing unit 121 may access the main memory 122 in the following manner, these means comprising: a system bus 150, a memory port 103, allowing processor 121 or other connection access memory 122, a bus terminal or □.

[0043] 计算设备100的一个实施例支持下列安装设备116的任何一个:⑶-ROM驱动器、 ⑶-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB设备、可引导介质、可引导⑶、诸如KN0PPIX :®的用于GNU/Linux分发的可引导⑶、硬盘驱动器或适于安装应用或软件的任意其它设备。 A [0043] computing device 100 of the embodiment supports the following mounting apparatus of any 116: ⑶-ROM drive, ⑶-R / RW drives, DVD-ROM drive, tape drives of various formats, USB device, a bootable medium, bootable ⑶, such KN0PPIX: ® for GNU / Linux distribution bootable ⑶, hard drives, or any application or software suitable for mounting other devices. 在一些实施例中应用可包括客户机代理120或客户机代理120的任意部分。 In some embodiments, the application may include a client agent 120, or any portion of the client agent 120. 计算设备1〇〇还可以包括可以为一个或多个硬盘驱动器或者一个或多个独立磁盘冗余阵列的存储设备128,这里存储设备被配置为存储操作系统、软件、程序应用、或者至少客户机代理120的一部分。 The computing device may further comprise 1〇〇 may be one or more hard disk drives or a plurality of redundant storage devices or arrays of independent disks 128, where the storage device is configured to store an operating system, software, programs applications, or at least the client Acting portion 120. 计算设备100的进一步实施例中包括用作存储设备128的安装设备116。 Further embodiments of the computing device 100 includes a mounting apparatus 116 as a storage device 128.

[0044] 计算设备100还可包括网络接口118以通过多种连接,包括但不限于标准电话线路、LAN或WAN链路(例如802. 11,!1,了3、561*4.25、5嫩、0£0呢1')、宽带连接(如150队帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某个组合,来连接到局域网(LAN)、广域网(WAN)或因特网。 [0044] Computing device 100 may further include a network interface 118 through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.11,! 1, a 3,561 * 4.25,5 tender, 0 £ 0 it 1 '), broadband connections (Frame Relay team such as 150, ATM, Gigabit Ethernet, SONET on Ethernet (Ethernet-over-SONET)), a wireless connection, or any of the above or some combination of all of , connected to the LAN (LAN), a wide area network (WAN) or the Internet. 使用多种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、 RS232、RS485、IEEE802. 11、IEEE802. lla、IEEE802. lib、IEEE802. llg、CDMA、GSM、WiMax 和直接异步连接)也可建立连接。 Using a variety of communication protocols (e.g., TCP / IP, IPX, SPX, NetBIOS, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), RS232, RS485, IEEE802. 11, IEEE802. Lla, IEEE802. Lib, IEEE802 . llg, CDMA, GSM, WiMax and direct asynchronous connections) may establish a connection. 计算设备100的一个形式包括可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或Citrix Systems公司制造的Gitrix网关协议的隧道协议来与其他计算设备100'通信的网络接口118。 In the form of a computing device 100 comprises a protocol gateway Gitrix by any type and / or form of gateway or such as Secure Sockets Layer (SSL) or Transport Layer Security (TLS), manufactured by Citrix Systems, Inc., or tunneling protocol to communicate with other network interface 118 100 'of the communication computing device. 网络接口118 的形式可以包括内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算设备100连接到能够通信并执行这里所描述的方法和系统的网络的任意其它设备中的任何一个。 Form of a network interface 118 may include a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or suitable method 100 connected to the computing device to be able to communicate and perform as described herein and any other devices of the network system of any of the.

[0045] 计算设备100的实施例包括下列1/0设备130A-130N的任何一个:键盘126、指示设备127、鼠标、触控板、光笔、轨迹球、话筒、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机、或可执行此处描述的方法和系统的任何其他输入/输出设备。 Example [0045] The computing device 100 includes the 1/0 device of any one of 130A-130N: keyboard 126, pointing device 127, a mouse, touchpad, stylus, trackball, microphone, graphics tablet, a video display, a speaker, any other input / output devices inkjet printers, laser printers, and dye-sublimation printers, or the methods and systems described herein may perform. 在一些实施例中1/0控制器123可连接多个1/0设备130A-130N以便控制一个或多个1/0设备。 In some embodiments, controller 123 can be connected to a plurality 1/0 1/0 devices 130A-130N in order to control one or more 1/0 devices. 1/0设备130A-130N的一些实施例被配置为提供存储或安装介质116,而其他实施例可为接收诸如由Twintech Industry公司制造的设备的USB闪存驱动线的USB存储设备提供通用串行总线(USB)。 Some embodiments of 1/0 devices 130A-130N is configured to provide storage or an installation medium 116, while other embodiments may provide a universal serial bus to receive a USB storage device such as devices made by Twintech Industry's USB Flash Drive line (USB). 在其他实施例中1/0设备130可以是系统总线150和外部通信总线, 如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppIeTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线或串行连接的SCSI总线之间的桥。 In other embodiments, the 1/0 device 130 may be a system bus 150 and an external communication bus, such as a USB bus, the Apple Desktop Bus, RS-232 serial connection, SCSI bus, FireWire bus, FireWire800 bus, an Ethernet bus, AppIeTalk bus bridge between a Gigabit Ethernet bus, an asynchronous Transfer mode bus, a HIPPI bus, a super HIPPI bus, a SerialPlus bus, SCI / LAMP bus, a fibreChannel bus, or a serial attached SCSI bus.

[0046] 在一些实施例中,计算设备100可以连接多个显示设备124A-124N,在其他实施例中计算设备1〇〇可以连接单个显示设备124,而仍在其他实施例中计算设备100可以连接相同类型或形式的显示设备124A-124N或不同的类型或形式的显示设备。 [0046] In some embodiments, the computing device 100 may be connected to multiple display devices 124A-124N, in other embodiments the computing device 1〇〇 embodiment may be connected to a single display device 124, while still other embodiments the computing device 100 may connection of the same type or form of display devices 124A-124N or a different type or form of display device. 显示设备124A-124N的实施例可被如下方式支持和实现:一个或多个1/0设备130A-130N、1/0控制器123、1/0设备130A-130N和1/0控制器123的组合、能支持显示设备124A-124N的硬件和软件的任何组合、任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示设备124A-124N对接、通信、连接或使用显示设备。 The display apparatus of Example 124A-124N can be supported and implemented in the following manner: A 1/0 or more of devices 130A-130N, 1/0 controller 123,1 / O devices 130A-130N and the controller 123 1/0 any combinations, can support a display device 124A-124N hardware and software, any type and / or form of video adapter, video card, driver, and / or library to display devices 124A-124N interface, communicate, connect or otherwise use display screen. 在一些实施例中,计算设备100可被配置为使用一个或多个显示设备124A-124N,这些配置包括:有多个连接器以与多个显示设备124A-124N对接;多个视频适配器且每个视频适配器与显示设备124A-124N中的一个或多个连接;有操作系统被配置用于支持多个显示设备124A-124N ;使用被包含在计算设备100内部的电路和软件来连接并使用多个显示设备124A-124N ;和在主计算设备100和多个次级计算设备上的执行软件来使主计算设备1〇〇能使用次级计算设备的显示设备作为用于主计算设备的显示设备124A-124N。 In some embodiments, the computing device 100 may be configured to use one or multiple display devices 124A-124N, these configurations include: a plurality of connectors to interface to multiple display devices 124A-124N docking; and each of a plurality of video adapters a video adapter and the display device 124A-124N are one or more connections; operating system is configured to support multiple display devices 124A-124N; is used to connect and use contained within the computing device 100 circuitry and software multi- display devices 124A-124N; and software executing on the host computing device 100 and multiple secondary computing devices to cause the display apparatus main computing device 1〇〇 secondary computing device can be used as a display device of the host computing device 124A-124N. 计算设备100的其它实施例可包括由多个次级计算设备提供的多个显示设备124A-124N,所述多个显示设备124A-124N通过网络连接到主计算设备100。 Other embodiments of the computing device 100 may include multiple display devices 124A-124N provided by multiple secondary computing devices, the plurality of host computing device 100 display device 124A-124N is connected to the network.

[0047] 在一些实施例中,计算设备100可执行任意操作系统,而在其他实施例中,计算设备100可执行下列操作系统的任何一个:诸如WINDOWS 3. x、WINDOWS 95、WINDOWS 98、 WINDOWS 2000、WINDOWS NT 3. 51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS XP 和WINDOWS VISTA的版本的MICROSOFT WINDOWS的操作系统;不同发行版本的Unix和Linux操作系统; 由苹果计算机公司(Apple Computer)出品的MAC OS的任意版本;由国际商业机器公司出品的OS/2 ;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算设备的操作系统,或者任意其它操作系统。 [0047] In some embodiments, the computing device 100 may perform any operating system, while in other embodiments, computing device 100 may perform any of the following operating systems: such as WINDOWS 3. x, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT 3. 51, WINDOWS NT 4.0, WINDOWS CE, WINDOWS XP and WINDOWS VISTA MICROSOFT WINDOWS version of the operating system; different releases of the Unix and Linux operating systems; by Apple computer Inc. (Apple computer) produced the MAC any version of the OS; produced by international Business Machines Corporation, OS / 2; any embedded operating system; any realtime operating system; any open source operating system; any proprietary operating system; any operating systems for mobile computing devices, or any other operating systems. 在其他实施例中,计算设备100可执行多个操作系统。 In other embodiments, the computing device operating system may perform more than 100. 例如计算设备100可执行PARALLELS或能执行或管理执行第一操作系统的虚拟机的又一个虚拟化平台,而计算设备100执行不同于第一操作系统的第二操作系统。 For example, computing device 100 may perform or be able to perform or PARALLELS performing a first virtual machine operating system and a virtual platform, computing device 100 executes a second operating system different from the first operating system.

[0048] 计算设备100可以体现为下列计算设备的任何一个:计算工作站、桌面计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、便携通信设备、媒体播放设备、游戏系统、移动计算设备、上网本、由苹果计算机公司出品的IPOD系列设备、由索尼公司出品的PLAYSTATION系列设备的任何一个、由Nintendo公司出品的Nintendo系列设备的任何一个;由微软公司出品的XBOX系列设备的任何一个或能够通信并有足够的处理器能力和存储容量以执行此处所述的方法和系统的任意其它类型和/或形式的计算或者电信或媒体设备。 [0048] Computing device 100 may be embodied as any one of the following computing devices: computing workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile telephone, portable communication devices, media playing device, a gaming system, mobile computing any devices, netbooks, produced by Apple computer IPOD family of devices, either produced by Sony PLAYSTATION series equipment, produced by the Nintendo company Nintendo family of devices; any one or a Microsoft produced the XBOX family of devices capable of communication and that has sufficient processor power and memory capacity to perform any of the methods and systems described herein for other types and / or form of computing or telecommunications or media device. 在其它实施例中,计算设备100可以是诸如下列移动设备的任何一个的移动设备: JAVA 使能(java-enabled)蜂窝电话或个人数据助理(PDA),诸如i55sr、i58sr,i85s,i88s, i90c,i95cl或imllOO,以上这些均由摩托罗拉公司制造;由Kyocera公司制造的6035或7135 ;由Samsung电子有限公司制造的i300或i330 ;由Palm公司出品的Treol80、270、 600、650、680、700?、700«或750智能电话;或具有与设备一致的不同的处理器、操作系统和输入设备的任何计算设备;或能执行此处所述的方法和系统的任何其他移动计算设备。 In other embodiments, the computing device 100 may be such as any of a mobile device according to one of the following mobile devices: JAVA enabled (java-enabled) a cellular phone or a personal data assistant (PDA), such as i55sr, i58sr, i85s, i88s, i90c , i95cl or imllOO, above which are manufactured by Motorola, Inc.; manufactured by Kyocera Corporation's 6035 or 7135; manufactured by the Samsung Electronics Co., the i300 or i330; produced by Palm Treol80,270, 600,650,680,700? , 700 «750 or smart phone; or with a device consistent with different processors, operating system and any computing device of the input device; any other mobile or capable of performing the methods and systems herein computing device. 在其他实施例中,计算设备100可以是下列移动计算设备中的任何一个:黑莓(Blackberry) 的任一系列,或由Research In Motion Limited公司出品的其他手持设备;由苹果计算机公司出品的iPhone ;Palm Pre ;掌上电脑;掌上电脑电话或任何其他手持移动设备。 In other embodiments, the computing device 100 may be any of a mobile computing device in the following: Blackberry (the Blackberry) to any number, or produced by Research In Motion Limited Company other handheld devices; produced the iPhone by Apple Computer; Palm Pre; PDA; Pocket PC phone or any other mobile handheld devices.

[0049] 图2A示出虚拟化环境的一个实施例。 [0049] FIG 2A illustrates a virtualized environment in one embodiment. 被包括在计算设备201中的硬件层可包括一个或多个物理盘204、一个或多个物理设备206、一个或多个物理处理器208和物理存储器216。 Is included in the computing device hardware layer 201 may comprise one or more physical disks 204, one or more physical devices 206, one or more physical processors 208 and 216 of physical memory. 在一些实施例中,固件212可被存储在物理存储器216的存储器元件中并且由一个或多个物理处理器208执行。 In some embodiments, firmware 212 may be stored in the physical memory of the memory elements 216 and 208 executed by one or more physical processors. 计算设备210还可包括被存储在物理存储器216的存储器元件中并且由一个或多个物理处理器208执行的操作系统214。 Computing device 210 may also include an operating system 214 is stored in the physical memory of the memory element 216 and memory 208 executed by one or more physical processors. 进一步,管理程序202可被储在物理存储器216的存储器元件中并且由一个或多个物理处理器208执行。 Further, the hypervisor 202 may be stored in a physical memory of the memory elements 216 and 208 executed by one or more physical processors. 一个或多个虚拟机232A-C(总称为232)在一个或多个物理处理器208上执行。 One or more virtual machines 232A-C (collectively referred to as 232) execute on one or more physical processors 208. 每个虚拟机232可以有虚拟盘226A-C和虚拟处理器228A-C。 Each virtual machine 232 may have a virtual disk and a virtual processor 226A-C 228A-C. 在一些实施例中,第一虚拟机232A可在虚拟处理器228A上执行包括工具堆栈224的控制程序220。 In some embodiments, a first virtual machine 232A can execute the control program 224 includes a tools stack 220 on a virtual processor 228A. 在其他实施例中,一个或多个虚拟机232B-C可在虚拟处理器228B-C上执行客户操作系统230A-B。 In other embodiments, the one or more virtual machines may be performed 232B-C 230A-B guest operating system on a virtual processor 228B-C.

[0050] 进一步参考图2A,在一个实施例的更多细节中,所描述的虚拟化环境包括Type2 管理程序202,或执行在计算设备201上的操作系统214中的管理程序。 [0050] With further reference to FIG. 2A, a more detailed embodiment, the virtualization environment described includes Type2 hypervisor 202, or the operating system 214 performing on the computing device 201 in a hypervisor. 在一些实施例中, Type2管理程序在操作系统214环境中执行并且虚拟机在管理程序之上的层次执行。 , Type2 hypervisor executing on a virtual machine and the management level of a program executed in the operating system environment 214 in some embodiments. 在许多实施例中,Type2管理程序在用户的操作系统的上下文中执行,这样Type2管理程序与用户操作系统进行交互。 , Type2 management program executed in the context of the user's operating system in many embodiments, such Type2 management program interacts with the user operating system.

[0051] 在一些实施例中,虚拟化环境包括计算设备201。 [0051] In some embodiments, the virtualization environment 201 includes a computing device. 计算设备201可以是任何计算设备,在一些实施例中计算设备201可以是此处描述的任何计算机、设备或计算机器。 The computing device 201 may be any computing device, computing device 201 in some embodiments may be any computer or computing device as described herein. 尽管图2A示出了单个计算设备201,在一些实施例中由计算设备201存储和执行的模块、程序、虚拟机和命令可以被不只一个计算设备201执行。 Although Figure 2A shows a single computing device 201 in some embodiments may be more than one computing module computing device 201 stores and execution, a program, and the virtual machine 201 performs command apparatus embodiment. 仍在其他实施例中,计算设备201可以是服务器群。 In still other embodiments, the computing device 201 may be a server farm.

[0052] 在一个实施例中,计算设备201可包括硬件层210,该硬件层包括与计算设备201 通信的一个或多个硬件。 [0052] In one embodiment, the computing device 201 may include a hardware layer 210, the hardware layer comprises one or more computing hardware and communication device 201. 在一些实施例中,硬件层210可包括被包含在计算设备201中的任意硬件。 In some embodiments, the hardware layer 210 may comprise any hardware include computing device 201. 在一些实施例中,硬件层210可包括一个或多个物理盘204、一个或多个物理设备206、一个或多个物理处理器208和存储器216。 In some embodiments, the hardware layer 210 may comprise one or more physical disks 204, one or more physical devices 206, one or more physical processor 208 and memory 216.

[0053] 在一些实施例中,硬件层210可包括一个或多个物理盘204。 [0053] In some embodiments, the hardware layer 210 may comprise one or more physical disks 204. 物理盘204可以是任何硬盘,而在一些实施例中物理盘204可以是此处描述的任何硬盘。 204 may be any physical disk drives, and in some embodiments any physical hard disk 204 embodiment may be described herein. 在一些实施例中, 硬件层210可包括一个物理盘204。 In some embodiments, the hardware layer 210 may comprise a physical disk 204. 在其他实施例中,硬件层210可包括不只一个物理盘204。 In other embodiments, the hardware layer 210 may comprise more than one physical disk 204. 在一些实施例中,计算设备201可与被包含在硬件层210中作为物理盘204的外部硬盘通"[目。 In some embodiments, the computing device 201 may be included as a physical disk 204 through the external hard "[in the hardware layer 210 mesh.

[0054] 在其他实施例中,硬件层210可包括处理器208。 [0054] In other embodiments, the hardware layer 210 may include a processor 208. 在一些实施例中,处理器208可以是任何处理器,而其他实施例中处理器208可以是此处描述的任何处理器。 In some embodiments, processor 208 may be any processor, a processor and any other embodiments processor 208 may be implemented as described herein. 处理器208可包括一个或多个处理核。 The processor 208 may include one or more processing cores. 在其他实施例中计算设备201可包括一个或多个处理器208。 In other embodiments, the computing device 201 may include one or more processors 208. 在一些实施例中,计算设备201可包括一个或多个不同处理器,例如处理单元、图形处理单元或物理引擎。 In some embodiments, the computing device 201 may comprise one or more different processors, such as processing unit, a graphics processing unit or a physical engine.

[0055] 在一些实施例中,物理设备206可以是被包含在计算设备201中的任何设备。 [0055] In some embodiments, the physical device 206 may be any device contained in a computing device 201. 在一些实施例中,物理设备206可以是在计算设备201中所包含的设备和与计算设备201通信的外部设备的任何组合。 In some embodiments, any combination of devices in the physical device 206 may be included in the computing device 201 and computing device 201 and the external communication device. 在一些实施例中,计算设备201可包括一个或多个物理设备206。 In some embodiments, the computing device 201 may include one or more physical devices 206. 物理设备206可以是下列设备中的任何一个:网络接口卡、视频卡、键盘、鼠标、输入设备、 显示器、显示设备、扬声器、光驱、存储设备、通用串行总线连接、连接到计算设备201的任何设备、与计算设备201通信的任何设备、打印机、扫描仪或任何其他设备或此处所描述的任何设备。 Physical device 206 may be any one of the following devices: network interface card, a video card, a keyboard, a mouse, an input device, a display, a display device, speaker, CD-ROM, a storage device, a universal serial bus connection, connected to the computing device 201 any device, any device to any device, printer, scanner or any other communication device or computing device 201 herein described.

[0056] 硬件层210还可包括可包含任何类型存储器的物理存储器216。 [0056] The hardware layer 210 may comprise any type of physical memory may comprise a memory 216. 在一些实施例中物理存储器216可包括此处描述的任何存储器类型。 In some embodiments, memory 216 may comprise any physical memory type described herein. 物理存储器216可存储数据,以及在一些实施例中可存储一个或多个程序或可执行指令集。 Physical memory 216 may store data, and may store one or more programs or sets of executable instructions in some embodiments. 图2A所示固件212被存储在计算设备201的物理存储器216中的实施例。 FIG 2A firmware 212 is stored in the embodiment of the computing device 201 in physical memory 216 as shown. 被存储在物理存储器216中的程序或可执行指令可由计算设备201上的一个或多个处理器208所执行。 Or executable program instructions are stored in the physical memory 216 may be one or more processors on a computing device 201,208 performed.

[0057] 在一些实施例中,固件212可以是可执行指令和硬件的任一组合,其控制与计算设备201通信的硬件或被包含在计算设备201内的硬件。 [0057] In some embodiments, executable instructions may be firmware 212 and any combination of hardware, which controls the communication with the computing device hardware 201 includes hardware or is within the computing device 201. 在一些实施例中,固件212可控制硬件层210内的一个或多个硬件。 In some embodiments, firmware 212 may control one or more hardware in the hardware layer 210. 在多个实施例中,固件212可被计算设备201内的一个或多个处理器208所执行。 In various embodiments, firmware 212 may be calculated within the one or more processors 208 of the device 201 performed. 在一些实施例中,固件212可以是诸如基本输入/输出系统(BIOS)的启动固件。 In some embodiments, firmware 212 may be such as a basic input / output system (BIOS) boot firmware. 在计算设备201上执行的额外固件212可以与BIOS相接口。 Additional firmware executing on the computing device 201 212 can interface with BIOS.

[0058] 在一个实施例中,计算设备201可包括由一个或多个物理处理器208执行的操作系统214。 [0058] In one embodiment, the computing device 201 may include an operating system 214 by one or more physical processors 208 execute. 在一些实施例中,操作系统214是能直接访问硬件层210中硬件设备的用户操作系统。 In some embodiments, operating system 214 is a direct access to the user operating system, the hardware device 210 hardware layer. 操作系统214可以是任何操作系统并且在一些实施例中,操作系统214可以是此处所述的任何操作系统。 Operating system 214 may be any operating system and, in some embodiments, operating system 214 may be any operating system described herein. 图2A示出了一个实施例,其中管理程序202在计算设备201上执行的操作系统214的上下文中执行。 FIG 2A shows an embodiment in which the execution context management program 202 executing on the computing device 201 in the operating system 214. 在这个实施例中,操作系统214可被称为宿主(host) 操作系统214,而其他操作系统可被称为客户(guest)操作系统。 In this embodiment, operating system 214 may be referred to as a host (Host) operating system 214, while other operating systems may be referred to as a customer (guest) operating system. 客户操作系统可包括执行在虚拟机232上的客户操作系统230A-B,和/或控制程序220。 GOS may include performing in the client 232 on the virtual machine operating system 230A-B, and / or control program 220.

[0059] 在一些实施例中,计算设备201可包括管理程序202。 [0059] In some embodiments, the computing device 201 may include a hypervisor 202. 在一些实施例中,管理程序202可以是在计算设备201上由处理器208执行以便管理任一数量的虚拟机的程序。 In some embodiments, the hypervisor 202 may be a program executed on the device 201 by the processor 208 to manage any number of virtual machines is calculated. 管理程序202可以被称为虚拟机监控器,或平台虚拟化软件。 Hypervisor 202 can be called a virtual machine monitor, or platform virtualization software. 在一些实施例中,管理程序202可以是监控执行在计算设备上的虚拟机的可执行指令和硬件的任何组合。 In some embodiments, the hypervisor 202 may be executed to monitor any combination of hardware and executable instructions on a computing device of a virtual machine. 尽管图2A示出了包括Type2管理程序202的虚拟化环境,计算设备201可执行任何其他类型的管理程序。 Although Figure 2A illustrates a virtualized environment 202 includes a hypervisor Type2, the computing device 201 may perform any other type of management procedures. 例如,计算设备201可以执行包括Typel管理程序202的虚拟化环境。 For example, computing device 201 may execute a virtual environment comprising a hypervisor 202 Typel. 在一些实施例中,计算设备201可执行一个或多个管理程序202。 In some embodiments, the computing device 201 may perform one or more of the hypervisor 202. 这些一个或多个管理程序202可以是相同类型的管理程序,或在其他实施例中可以是不同类型的管理程序。 These one or more hypervisor 202 may be the same type of management procedures, or in other embodiments may be different types of management procedures.

[0060] 在一些实施例中,管理程序202可以以模拟直接访问系统资源的操作系统230或控制程序220的任何方式向在虚拟机232上执行的操作系统230或控制程序220提供虚拟资源。 [0060] In some embodiments, the hypervisor 202 can simulate any direct access to system resources of the operating system 230 or control program 220 to provide virtual resources to operating system 230 or a control program executing on the virtual machine 232 220. 系统资源可包括:物理设备、物理盘、物理处理器、物理存储器216和被包含在计算设备201硬件层210中的任何其他组件。 The system resources may include: a physical device, a physical disk, a physical processor, physical memory 216 and any other components included in the computing device 201 is a hardware layer 210. 在这些实施例中,管理程序202可被用来仿真虚拟硬件、划分物理硬件、虚拟化物理硬件和执行提供对计算环境的访问的虚拟机。 In these embodiments, the hypervisor 202 may be used to emulate virtual hardware, partition physical hardware, the physical hardware and virtualization performed to provide access to a virtual machine of the computing environment. 仍在其他实施例中,管理程序202为在计算设备201上执行的虚拟机232控制处理器调度和存储器分区。 In still other embodiments, the hypervisor 202 to virtual machine executing on the computing device 201. The processor 232 controls the scheduling and memory partitions. 管理程序202可包括由位于加利福尼亚州Palo Alto的VMWare公司制造的管理程序; XEN管理程序,其开发由开源Xen. org团体监督的开源产品;由微软公司提供的HyperV、虚拟服务器和虚拟PC管理程序,或其他。 Hypervisor 202 may include a hypervisor those manufactured by VMWare in Palo Alto, California company; XEN hypervisor, which is developed by the open source Xen org community supervision of open source products; provided by Microsoft HyperV, Virtual Server and Virtual PC hypervisor ,or others. 在一些实施例中,计算设备201执行管理程序202, 该管理程序创建客户操作系统可在其上执行的虚拟机平台。 In some embodiments, the computing device 201 executes program 202, the hypervisor can create a virtual machine guest operating system platform on which it executes. 在这些实施例中,计算设备201 可被称为宿主服务器。 In these embodiments, the computing device 201 may be referred to as a host server. 这样的计算设备的例子是由位于佛罗里达州Fort Lauderdale的Citrix Systems 公司提供的XEN SERVER。 An example of such a computing device is a XEN SERVER provided by Citrix Systems, Inc. of Fort Lauderdale, Florida.

[0061] 在一个实施例中,管理程序202创建操作系统230在其中执行的虚拟机232A-B (总的表示为232)。 [0061] In one embodiment, the hypervisor 202 to create an operating system 230 which virtual machine 232A-B performed (generally designated 232). 例如,在这些实施例的一个中,管理程序202加载虚拟机映像以创建虚拟机232。 For example, in one of these embodiments, the hypervisor 202 loading a virtual machine image to create the virtual machine 232. 在这些实施例的另一个中,管理程序202在虚拟机232中执行操作系统230。 In another of these embodiments, the hypervisor 202 executes an operating system 230 in the virtual machine 232. 仍在这些实施例的另一个中,虚拟机232执行操作系统230。 In still another of these embodiments, the virtual machine 232 executes an operating system 230.

[0062] 在一个实施例中,管理程序202控制至少一个虚拟机232的执行。 [0062] In one embodiment, the hypervisor 202 controls at least one virtual machine 232 is executed. 在又一个实施例中,管理程序202将由计算设备201提供的至少一个硬件资源的抽象提供给至少一个虚拟机232。 In yet another embodiment, the hypervisor 202 by calculating at least one hardware resource abstraction provided by device 201 is supplied to the at least one virtual machine 232. 这个抽象还可被称为计算设备201上可利用的硬件、内存、处理器和其他系统资源的虚拟化或虚拟视图。 This may also be referred to abstract the computing device 201 may utilize the hardware, virtual memory, processor and other system resources, or virtual view. 在一些实施例中,硬件或硬件资源可以是在硬件层210中可利用的任何硬件资源。 In some embodiments, a hardware resource can be any hardware or hardware resource in the hardware layer 210 may be utilized. 在其他实施例中,管理程序202控制虚拟机232访问计算设备201中可利用的物理处理器208的方式。 In other embodiments, the hypervisor 202 controls the virtual machine 232 in the embodiment 201 of physical processor device 208 may utilize the calculated access. 控制对物理处理器208的访问可包括确定虚拟机232是否应该访问处理器208以及物理处理器性能如何呈现给虚拟机232。 Controlling access to the physical processor 208 may include determining whether the virtual machine 232 should access the processor 208 and how the physical properties rendering processor 232 to the virtual machine.

[0063] 在一些实施例中,计算设备201可寄载或执行一个或多个虚拟机232。 [0063] In some embodiments, the computing device 201 may upload or send one or more virtual machines 232. 虚拟机232 可被称为域、客户和/或DOMAIN U。 Virtual machine 232 may be referred to as a domain, the customer and / or DOMAIN U. 虚拟机232是一组可执行指令,当其被处理器208执行时,模拟物理计算机的操作,从而虚拟机232可类似物理计算设备执行程序或进程。 Virtual machine 232 is a set of executable instructions, which when executed by a processor 208, a physical computer simulation of the operation, so that the virtual machine 232 may be similar physical computing device to perform a program or process. 尽管图2A计算设备201寄载3个虚拟机232的实施例,在其他实施例中,计算设备201可寄载任何数量的虚拟机232。 Although computing device 201 of FIG. 2A hosted virtual machine 232 3 embodiment, in other embodiments, computing device 201 may be any number of hosted virtual machine 232. 在一些实施例中,管理程序202为每个虚拟机232提供物理硬件、 内存、处理器和对该虚拟机可利用的其他系统资源的唯一的虚拟视图。 In some embodiments, the hypervisor 202 provides the physical hardware, memory, processor, and a unique virtual view of the other virtual machine system resources available for each virtual machine 232. 在一些实施例中,该唯一的虚拟视图可以基于下列的任何一个:虚拟机许可;向一个或多个虚拟机标识符应用的策略引擎;访问虚拟机的用户;在虚拟机上执行的应用;被虚拟机访问的网络;或任何其他类似标准。 In some embodiments, the unique virtual view can be based on any one of the following: the virtual machine license; to one or more virtual machine identifier of an application policy engine; user to access the virtual machine; application executing on a virtual machine; virtual machine network is accessed; or any other similar criteria. 在其他实施例中,管理程序202向每个虚拟机232提供物理硬件、存储器、处理器和对该虚拟机可利用的其他系统资源的基本上类似的虚拟视图。 In other embodiments, the hypervisor 202 to physical hardware 232 provides each virtual machine, the virtual view substantially similar to the memory, processor and other system resources to the virtual machine can be utilized.

[0064] 每个虚拟机232可包括虚拟盘226A-C(总称为226)和虚拟处理器228A-C (总称为228)。 [0064] Each virtual machine 232 may include a virtual disk 226A-C (collectively referred to as 226) and virtual processors 228A-C (collectively referred to as 228). 在一些实施例中,虚拟盘226是计算设备201的一个或多个物理盘204的虚拟化视图,或计算设备201的一个或多个物理盘204的一部分的虚拟化视图。 In some embodiments, the virtual disk 226 is a computing device 201 or a plurality of physical disks virtualized view 204, or calculates a virtual view of a portion of a plurality of physical disk device 201 or 204. 物理盘204的虚拟化视图可由管理程序202产生、提供和管理。 Virtualized view of the physical disk 204 generated by the management program 202, provision and management. 在一些实施例中,管理程序202可为每个虚拟机232提供物理盘204的唯一视图。 In some embodiments, the hypervisor 202 may provide a unique view of the physical disks 204 for each virtual machine 232. 因此,在这些实施例中,当与其他虚拟盘226相比较时,被包含在每个虚拟机232中的虚拟盘226可以是唯一的。 Thus, in these embodiments, when compared to other virtual disk 226, virtual disk is contained in each of the virtual machines 232 226 may be unique.

[0065] 虚拟处理器228可以是计算设备201的一个或多个物理处理器208的虚拟化视图。 [0065] Virtual Processor 228 may be one or more virtualized view of the physical processor 208 of the computing device 201. 在一些实施例中,物理处理器208的虚拟化视图可由管理程序202产生、提供和管理。 In some embodiments, virtualized view of the physical processor 208 is generated by the management program 202, provision and management. 在一些实施例中,虚拟处理器228基本上具有至少一个物理处理器208的所有相同特征。 In some embodiments, the virtual processor 228 having at least one substantially all of the same features of the physical processor 208. 在其他实施例中,虚拟处理器228提供物理处理器208的经修改的视图,从而虚拟处理器228 的至少一些特征可以不同于相应的物理处理器208。 In other embodiments, the virtual processor 228 to provide a modified view of the physical processor 208, such that at least some of the virtual processor 228 may feature different from the corresponding physical processor 208.

[0066] 控制程序220可执行至少一个应用来管理和配置在虚拟机232以及在一些实施例中计算设备上执行的客户操作系统。 [0066] The control program 220 execute at least one application to manage and configure the virtual machines 232 and client operating system executed on a computing device in some embodiments. 在一些实施例中,控制程序220可被称为控制操作系统、控制域、域0或dom 0。 In some embodiments, the control program 220 may be referred to a control operating system, control domain, or the domain 0 dom 0. 在一些实施例中,控制程序220可以是XEN管理程序的DOMAIN 0或DOM 0。 In some embodiments, the control program 220 may be DOMAIN 0 or DOM 0 XEN hypervisor. 控制程序220可以执行管理应用或程序以进一步显示可被管理员用来访问每个虚拟机232的功能和/或管理虚拟机232的用户接口。 The control program execution management application 220 may further show or program administrators may be used to access the functions of each virtual machine 232 and / or virtual machine management user interface 232. 在一些实施例中,由管理程序产生的用户接口可被用于终止虚拟机232的执行、为虚拟机232分配资源、为虚拟机232指派权限或者管理与虚拟机232相关的安全证书。 In some embodiments, the user interfaces generated by the hypervisor may be used to terminate the virtual machine 232 executed, allocates a resource for the virtual machine 232, virtual machine 232 to assign or manage rights associated with the virtual machine 232 of the security certificate. 在一些实施例中,控制程序220可启动新的虚拟机232或终止正在执行的虚拟机232。 In some embodiments, the control program 220 starts the virtual machine 232 may be a new virtual machine 232 being executed or terminated. 在其他实施例中,控制程序220可直接访问硬件层210内的硬件和/或资源。 In other embodiments, the control program 220 within hardware layer 210 can directly access the hardware and / or resources. 仍在又一个实施例中,控制程序220可与在计算设备210上且在虚拟机232的上下文之外执行的程序和应用相接口。 In still another embodiment, the control program and an application program 220 can be executed and interfacing outside of the context of the virtual machine 232 and 210 on the computing device. 类似地,控制程序220可与在虚拟机232的上下文内执行的程序和应用相接口。 Similarly, the programs and applications to interface with the control program 220 may be executed within the context of the virtual machine 232.

[0067] 在一个实施例中,管理程序202可执行虚拟机232内的控制程序220。 [0067] In one embodiment, the hypervisor 202 can perform within a virtual machine control program 220 232. 管理程序202可创建和启动虚拟机232。 Hypervisor 202 may create and start the virtual machine 232. 在管理程序202执行虚拟机232内的控制程序220的实施例中,该虚拟机232也可被称为控制虚拟机232。 Example executes a control program in a virtual machine hypervisor 202 232 220, the virtual machine 232 may also be referred to as a control virtual machine 232. 仍在又一个实施例中,控制程序220执行在被授权直接访问计算设备201上物理资源的虚拟机232中。 In still another embodiment, the control program 220 is executed on a computing device authorized to directly access physical resources 201 in the virtual machine 232.

[0068] 在一些实施例中,在第一计算设备201A(未示出)上的控制程序220A(未示出) 可与在第二计算设备201B (未示出)上的控制程序220B (未示出)交换数据。 [0068] In some embodiments, the first computing device 201A (not shown) on the control program 220A of the (not shown) with the second computing device 201B (not shown) on a control program 220B (not shown) to exchange data. 在这些实施例中,第一计算设备20IA可远离第二计算设备20IB。 In these embodiments, the first computing device remote from the second computing device may 20IA 20IB. 控制程序220A-B可通过在第一计算设备201A上执行的管理程序202A(未示出)和在第二计算设备201B上执行的管理程序202B(未示出)之间的通信链路交换数据。 220A-B control program may be executed by the hypervisor 202A on the first computing device 201A (not shown), and a hypervisor executing on a second computing device 201B 202B (not shown) to exchange data between the communication link . 通过这条通信链路,计算设备201A-B可交换关于处理器和资源池中其他可利用的物理资源的数据。 By this communication link, the computing device 201A-B exchange data with respect to other physical resources available resource pool and a processor. 而且通过管理程序202A-B之间的连接,管理程序202A-B可管理分布在一个或多个计算设备201A-B上的资源池,例如在第一计算设备201A和第二计算设备201B上的可利用资源。 But also through the connection between the management program 202A-B, 202A-B hypervisor may manage the distribution of one or more computing devices 201A-B on the resource pool, for example on a first computing device 201A and the second computing device 201B available resources. 管理程序202A-B还可虚拟化这些资源并使它们对于在计算设备201A-B上执行的虚拟机232成为可利用的。 Hypervisor 202A-B may also make these resources are virtualized 232 become available for the virtual machine executing on the computing device 201A-B. 在本实施例的又一情况下,单个管理程序202可管理和控制在两个计算设备201A-B上执行的虚拟机232。 In yet another embodiment of the present embodiment, a single hypervisor 202 may manage and control the virtual machine 232 executing on two computing devices 201A-B.

[0069] 在一些实施例中,控制程序220与一个或多个客户操作系统230A_B(总称为230) 交互。 [0069] In some embodiments, the control program 220 and one or more guest operating systems 230A_B (collectively referred to as 230) interact. 控制程序220可通过管理程序202与客户操作系统230通信。 202 control program 220 can communicate with the guest operating system 230 via the hypervisor. 通过管理程序202,客户操作系统230可请求访问物理盘204、物理处理器208、存储器216、物理设备206和硬件层210中的任何其他组件。 202 through the hypervisor, guest operating system 230 may request access to the physical disks 204, 208, memory 216, physical device 206 and any other components in the hardware layer 210 physical processors. 仍在其他实施例中,客户操作系统230可通过由管理程序202 建立的通信信道与控制程序220通信,诸如,例如通过由管理程序202使之可用的多个共享内存页。 In still other embodiments, the client operating system 230 through a communication channel with the communication control program 220 established by the hypervisor 202, such as, for example, by the hypervisor 202 so that a plurality of available shared memory pages.

[0070] 在一些实施例中,控制程序220包括用于与计算设备201所提供的网络硬件直接通信的网络后端驱动程序。 [0070] In some embodiments, the control program includes a network back-end drivers 220 communicate directly with the network hardware for the computing device 201 is provided. 在这些实施例中的一个,网络后端驱动程序处理来自至少一个客户操作系统230的至少一个虚拟机请求。 In such an embodiment, the network back-end driver processing at least one request from the at least one virtual machine guest operating system 230. 在其他实施例中,控制程序220包括用于与计算设备201上存储元件通信的块后端驱动程序。 In other embodiments, the control program 220 includes a block back-end drivers stored on a device for communicating with a computing device 201. 在这些实施例的一个,块后端驱动程序根据从客户操作系统230接收到的至少一个请求从存储元件中读数据和写数据。 Read data and write data from the storage element in one of these embodiments, the block back driver 230 in accordance with at least one request received from the client operating system.

[0071] 在又一个实施例中,控制程序220包括工具堆栈224。 [0071] In yet another embodiment, the control program 220 includes a tools stack 224. 在又一个实施例中,工具堆栈224提供用于与管理程序202交互、与其他控制程序220 (例如,在第二计算设备20IB上) 通信或管理计算设备201上的虚拟机232的功能。 In yet another embodiment, the tools stack 224 provides for interaction with the hypervisor 202, and other control programs 220 (e.g., on a second computing device 20IB) communication or computing management function of the virtual machine 232 on the device 201. 在又一个实施例中,工具堆栈224包括用于向虚拟机群的管理员提供改善的管理功能的经定制的应用。 In yet another embodiment, the 224 includes a virtual administrators to provide improved fleet management features customized application tools stack. 在一些实施例中,工具堆栈224和控制程序220的至少一个包括提供接口的管理API,所述接口用于远程配置和控制在计算设备201上运行的虚拟机。 In some embodiments, the tools stack 224 and the control program comprises at least a management API 220 provides an interface to the interface for remotely configuring and controlling virtual machines running on the computing device 201. 在其他实施例中,控制程序220通过工具堆栈224与管理程序202通信。 In other embodiments, the communication control program 220 through the tools stack 224 and hypervisor 202.

[0072] 在一个实施例中,管理程序202在由管理程序202创建的虚拟机232内执行客户操作系统230。 [0072] In one embodiment, the hypervisor 202 performs a guest operating system 230 within a virtual machine 232 created by the hypervisor 202. 在又一个实施例中,客户操作系统230向计算设备201的用户提供对计算环境中的资源的访问。 In yet another embodiment, the guest operating system 230 provides access to a computing environment resources to a user of computing device 201. 仍在又一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境和对计算设备201的用户可用的其他资源。 In still another embodiment, the resource includes a program, application, document, a file, a plurality of applications, a plurality of files, an executable program file, a desktop environment, a computing environment of the users, and other resources available to the computing device 201 of FIG. 仍在又一个实施例中,资源可以通过多种访问方法传送到计算设备201,这些访问方法包括但不限于以下方法:传统直接在计算设备201上安装、通过应用流的方法传送到计算设备201 上、将第二计算设备201'上资源的执行所产生的输出数据传送到计算设备201且通过表示层协议传达给计算设备201、将通过在第二计算设备201,上执行的虚拟机执行资源所产生的输出数据传送到计算设备201,或者从连接到计算设备201上的诸如USB设备的可移动存储设备上执行或通过在设备201上执行的虚拟机执行并且产生输出数据。 In still another embodiment, the resource may be transmitted to the computing device 201 by a variety of access methods, these access methods include but are not limited to the following methods: conventional installation on the computing device 201 is directly transmitted to the computing device 201 by a method for application streaming , the output data transfer 201 'performs on the resources of the second computing device to the computing device 201 is generated and communicated to the computing device 201 via a presentation layer protocol, by performing the resource in a second computing device 201, a virtual machine executing on transmitting the generated output data to the computing device 201 or from a device such as a USB connection to the computing device 201 or a removable storage device via a virtual machine executing on the device 201 and generating output data. 在一些实施例中,计算设备201传输由资源的执行所产生的输出数据到另一个计算设备201'。 In some embodiments, the computing device 201 transmitting the output data generated by the execution of the resource to another computing device 201 '.

[0073] 在一个实施例中,客户操作系统230与该客户操作系统230在其上执行的虚拟机结合在一起,形成意识不到其是虚拟机的完全虚拟化的虚拟机;这样的机器可被称为"Domain U HVM(硬件虚拟机)虚拟机"。 [0073] In one embodiment, the guest operating system 230 operating system 230 together with the virtual machine executing on the client is not aware that it is formed of a virtual machine a virtual machine virtualized completely; this machine It is called "Domain U HVM (hardware virtual machine) virtual machine." 在又一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。 In yet another embodiment, a fully-virtualized machine includes analog Basic Input / Output System (BIOS) software in order to execute an operating system in a fully-virtualized machine. 仍在又一个实施例中, 完全虚拟化机可包括通过与管理程序202通信提供功能的驱动程序。 In still another embodiment, a fully-virtualized machine may include a driver that provides functionality by communicating with the hypervisor 202 implemented. 在这样的实施例中, 驱动程序典型地意识到自己执行在虚拟化的环境中。 In such an embodiment, the driver is typically aware that it executes in a virtual environment.

[0074] 在又一个实施例中,客户操作系统230与该客户操作系统230在其上所执行的虚拟机结合在一起,形成意识到其是虚拟机的超虚拟化(paravirtualized)的虚拟机;这样的机器可被称为"Domain U PV虚拟机"。 [0074] In yet another embodiment, the guest operating system 230 combines the operating system 230 on which the virtual machine and executed by the client, which is formed appreciated paravirtualized virtual machine (the Paravirtualized) virtual machine; such a machine may be referred to as a "Domain U PV virtual machine." 在又一个实施例中,超虚拟化机包括完全虚拟化机中所不包含的额外的驱动程序。 In yet another embodiment, a paravirtualized machine includes additional drivers in a fully-virtualized machine are not included. 仍在又一个实施例中,超虚拟化机包括如上所述的被包含在控制程序220中的网络后端驱动程序和块驱动程序。 In still another embodiment, the paravirtualized machine includes a network as described above is included back-end drivers and drivers block 220 in the control program in the embodiment.

[0075] 图2B中所示的是说明Typel管理程序202的虚拟化环境的又一个实施例。 Is illustrated in [0075] FIG. 2B illustrate Typel hypervisor virtualization environment 202 in another embodiment. 在计算设备201上执行的管理程序202可以直接访问硬件层210中的硬件和资源。 Management program executing on the computing device 201 and hardware resources 202 may directly access the hardware layer 210. 由管理程序202管理的虚拟机232可以是不安全的虚拟机232B和/或安全的虚拟机232C。 202 managed by hypervisor virtual machine 232 may be unsecure virtual machine 232B and / or the security virtual machine 232C. 尽管图2A 所描述的虚拟化环境中图示了宿主操作系统214,图2B中的虚拟化环境的实施例不执行宿主操作系统。 While virtualization environment depicted in FIG. 2A illustrates a host operating system 214, the embodiment of Fig 2B does not perform the virtualization environment host operating system.

[0076] 进一步参考图2B,更详细地,虚拟化环境包括Typel管理程序202。 [0076] With further reference to Figure 2B, in more detail, the virtual environment including the hypervisor 202 Typel. 在一些实施例中Typel管理程序202执行在"裸金属"上,从而管理程序202可以直接访问计算设备201 上执行的所有应用和进程、计算设备201上所有资源和计算设备201上所有硬件或与计算设备201通信的所有硬件。 In some embodiments Typel hypervisor 202 executing on "bare metal", so that the hypervisor 202 has direct access to calculate all applications and processes executing on the device 201, computing all hardware on all resources and computing device 201 on the device 201 or All communications computing device 201 hardware. 尽管Type2管理程序202通过宿主操作系统214访问系统资源, Typel管理程序202可直接访问所有系统资源。 Although Type2 hypervisor 202 by the host operating system 214 access to system resources, Typel hypervisor 202 can directly access all system resources. Typel管理程序202可直接执行在计算设备201的一个或多个物理处理器上,并且可包括存储在物理存储器216中的程序数据。 Typel hypervisor 202 may be directly executed on a computing device or a plurality of physical processors 201, and may include program data stored in the physical memory 216.

[0077] 在采用Typel管理程序202配置的虚拟化环境中,宿主操作系统可被一个或多个虚拟机232所执行。 [0077] In use Typel hypervisor 202 configured virtual environment, the host operating system may be substituted with one or more virtual machine 232 is executed. 这样计算设备201的用户可以指派一个或多个虚拟机232作为该用户的个人机器。 Such a user computing device 201 may designate one or more virtual machines 232 as the user's personal machine. 这个虚拟机可通过允许用户以与用户通过宿主操作系统214与计算设备201 交互的基本上相同方式来与计算设备201交互来模拟宿主操作系统。 The virtual machine 201 may interact with the computing device via the host operating system to simulate substantially the same manner to allow the user to the user through the host operating system 201 to interact 214 with the computing device.

[0078] 虚拟机232可以是不安全的虚拟机232B和安全的虚拟机232C。 [0078] Virtual machine 232 may be unsecure virtual machines 232B and secure virtual machine 232C. 尽管图2B示出了安全的虚拟机和不安全的虚拟机,有时它们也被称为有特权的和无特权的虚拟机。 Although FIG. 2B illustrates a secure virtual machine and an unsecure virtual machine, sometimes they are also known as privileged and unprivileged virtual machine. 在一些实施例中,可基于虚拟机与在相同虚拟化环境中执行的其他虚拟机的比较来确定虚拟机的安全。 In some embodiments, a secure virtual machine may be determined based on a comparison with other virtual machines VM executed in the same virtual environment. 例如,要是第一虚拟机访问资源池则第二虚拟机不访问同样的资源池;当第一虚拟机被认为是安全虚拟机232A时第二虚拟机可被认为是不安全的虚拟机232B。 For example, if the first virtual machine to access a resource pool is the second virtual machine does not access the same resource pool; when the first virtual machine is considered a safe virtual machine 232A of the second virtual machine can be considered unsecure virtual machine 232B. 在一些实施例中,虚拟机323访问一个或多个系统资源的能力可使用由控制程序220或管理程序202产生的配置接口来进行配置。 In some embodiments, the capacity, the virtual machine 323 to access one or more system resources available by the control program using the configuration interface 220 or hypervisor 202 is configured to produce. 在其他实施例中,虚拟机232可承受的访问量可以是查看下列标准的集合的任意的结果:访问虚拟机的用户、在虚拟机上执行的一个或多个应用、虚拟机标识符、基于一个或多个因素指派给虚拟机的风险等级或任何其他类似标准。 In other embodiments, the virtual machine can withstand 232 may be any visits to view the result of a set of the following criteria: a user to access the virtual machine, one or more applications executing in the virtual machine identifier on the virtual machine, based on one or more factors of risk rating assigned to the virtual machine or any other similar criteria.

[0079] 在一些实施例中,不安全虚拟机232B可被阻止访问安全虚拟机232A可以访问的资源、硬件、存储器位置和应用。 [0079] In some embodiments, unsecure virtual machine 232B can be prevented resource access secure virtual machine 232A can access, hardware, memory locations and applications. 例如安全虚拟机232C可访问一个或多个公司资源,而不安全虚拟机232B不能访问任何公司资源。 For example, secure virtual machine 232C can access one or more company resources, while security virtual machine 232B can not access any corporate resources.

[0080] 图3所示的是包括在虚拟化环境302执行的计算设备201和执行虚拟桌面架构(VDI)平台310的计算设备203以及性能监控系统316的系统的一个实施例。 [0080] FIG. 3 is a system comprising a computing device in a virtualized execution environment 302 201 and virtual desktop infrastructure (VDI) platform computing devices 203 and 310 the performance monitoring system 316 of the illustrated embodiment. 在计算设备201上执行的虚拟化环境302可为此处所描述的任一虚拟化环境。 Any of the virtual environment virtualization environment 302 executing on the computing device 201 may be described herein for this purpose. 图示的实施例描述了包括管理程序202、控制虚拟机232A、一个或多个附加的虚拟机232B的虚拟化环境302。 It describes the illustrated embodiment includes a hypervisor 202, a control virtual machine 232A, one or more additional virtual machines in a virtualization environment 302 232B. 控制虚拟机232A可包括与包含元数据322A的虚拟盘226A通信的控制程序220,并且控制虚拟机232A可以执行VDI客户端320。 Control virtual machine 232A may include a communication control program 220 226A comprising virtual disk metadata 322A, 232A and the control virtual machine VDI client 320 may be performed. 附加的虚拟机232B可执行与包含元数据322B的虚拟盘226B通信的客户操作系统230A。 Additional virtual machine 232B can perform communication with the client metadata comprising a virtual disk 322B 226B operating system 230A. 计算设备201可包括与管理程序202相接口的硬件层210。 The computing device 201 may include a hypervisor hardware interfacing layer 202,210. 另一个计算设备203可包括VDI平台310,该VDI平台310包括一组VDI用户会话314和虚拟桌面代理350,所述一组VDI用户会话314包含一个或多个用户会话304A-N (此处总称为用户会话304)。 Another computing device 203 may include VDI platform 310, the platform 310 comprises a set of VDI VDI user session 314 and the Virtual Desktop Agent 350, the user session a set of VDI 314 comprises one or more user sessions 304A-N (here a generic term the user session 304). 在一些实施例中,计算设备203还可执行能够访问一个或多个虚拟机232A-N(此处总称为虚拟机232)的虚拟机池312的虚拟机管理器352.另一个计算设备203还可执行性能监控系统316,所述性能监控系统316包括分类系统318、用户工作负责简档存储仓库322、虚拟机指标存储仓库324、虚拟机性能监控器326、会话记录存储仓库330和会话监控器332。 In some embodiments, the computing device 203 may also perform access to one or more virtual machines 232A-N (collectively referred to herein, a virtual machine 232) a virtual machine pool manager 312 of virtual machine 352. The computing device 203 further another executable performance monitoring system 316, the performance monitoring system 316 includes a classification system 318, the user is responsible for the work profile repository 322, virtual machine metrics storage warehouse 324, virtual machine performance monitor 326, session record repository 330 and session monitor 332.

[0081] 进一步参考图3,在一个实施例的更多细节中,计算设备201和另一个计算设备203可以是此处所述的任何计算设备100。 [0081] With further reference to FIG. 3, a more detailed embodiment, the computing device 201 and another computing device 203 may be any computing device 100 described herein. 在一些实施例中,计算设备201,203可以是服务器106、客户机102或又一类型的计算机器或移动设备。 In some embodiments, the computing device 201, 203 may be a server 106, a client 102 or another type of computer or mobile device. 计算设备201,203可以被称为第一计算机、第二计算机、第三计算机等。 The computing device 201, 203 may be referred to as a first computer, a second computer, a third computer. 而且,计算设备201,203可在诸如此处所述的任何网络104的网络上互相通信。 Further, any network communicate with each other over a network 201, 203 may be computing device 104, such as described herein. 正如计算设备201,203可以是此处所述的任何计算机器100,硬件层210也可以是此处所描述的任何硬件层210并且可包括此处描述的任何计算机硬件。 As with any computing device hardware layer 201, 203 described herein may be any computer device 100, hardware layer 210 may be 210 described herein and may include any computer hardware described herein.

[0082] 执行在计算设备201上的虚拟化环境302可以是此处所描述的任何虚拟化环境。 [0082] 302 executes the virtual environment on the computing device 201 may be any virtualization environment described herein. 尤其是,虚拟化环境302可包括图2A所示的管理程序配置或图2B所示的管理程序配置。 In particular, virtualization environment 302 may include a hypervisor configuration shown in FIG. 2A or FIG. 2B hypervisor configuration shown. 在一个实施例中,被包含在虚拟化环境302中的管理程序202可以是任何管理程序202,或此处所描述的任何管理程序202。 In one embodiment, be included in the virtual environment 302 of the hypervisor 202 may be any described in any hypervisor hypervisor 202, or 202 here. 在一些实施例中,管理程序202可以被包含在诸如图2A和2B所描述的那些配置的任何管理程序配置中。 In some embodiments, the hypervisor 202 may be included in any of those hypervisor configuration described in Figures 2A and 2B in such a configuration.

[0083] 图3示出了包括虚拟化环境302的计算设备302,该虚拟化环境302包括诸如此处所描述的任一控制虚拟机232的控制虚拟机232。 [0083] FIG. 3 shows a 302, the virtualized environment 302 including virtual environment 302 includes a computing device 232 controls a virtual machine control any described herein, such as virtual machine 232. 控制虚拟机232可执行诸如此处所述的任一控制程序220的控制程序220,并且可包括诸如此处所述的任一虚拟盘226的虚拟盘226。 Virtual machine 232 may perform a control such as any described herein a control program 220 of the control program 220, and may include information such as described herein any of the virtual disk 226 of the virtual disk 226. 尽管图3图示了包括控制虚拟机232A和另一个虚拟机232B的虚拟化环境302,在一些实施例中,虚拟化环境302可包括任何数量的虚拟机232。 While FIG 3 illustrates a control virtual machine comprises a virtual machine 232A and 232B of another virtualization environment 302, in some embodiments, virtualization environment 302 may include any number of virtual machines 232. 虚拟机232可执行诸如此处所描述的任一客户操作系统230的客户操作系统230,并且可包括诸如此处所述的任一虚拟盘226的虚拟盘226。 Virtual machine 232 may perform any of a customer, such as described herein guest operating system 230 of the operating system 230, and may include information such as described herein any of the virtual disk 226 of the virtual disk 226.

[0084] 在一个实施例中,被包含在每个虚拟机232中的虚拟盘226还可包含元数据322A-B (总称为元数据322)或与之相关联。 [0084] In one embodiment, the virtual machine 232 included in each virtual disk 226 may also include metadata 322A-B (collectively referred to metadata 322) or associated therewith. 虚拟盘226可包含、存储元数据322或以其他方式与之相关联。 226 may comprise a virtual disk, metadata storage 322 or otherwise associated therewith. 在一些实施例中,元数据322可以是任意形式的元数据,例如:电子信息、电子文件、标签、图像、文档、文本文件、表格、列表、或包含信息的电子数据的任何其他形式。 In some embodiments, metadata 322 may be any form of metadata, for example: electronic information, electronic documents, labels, images, documents, text documents, tables, lists, or electronic data containing information of any other form. 元数据322可包含关于虚拟盘226的信息,例如盘的类型、与盘相关联的功能特性、用于盘的压缩方案,或关于盘的任何其他信息。 Metadata 322 may contain information about the virtual disk 226, the type of disc, such as a disc with the features associated with the compression scheme for the disc, or any other information about the disc.

[0085] VDI客户端320可由控制虚拟机232执行。 [0085] VDI client 320 may be controlled by the virtual machine 232 executed. 在一些实施例中,VDI客户端320可由任何虚拟机执行,而在其他实施例中计算设备201或管理程序202可执行VDI客户端320。 In some embodiments, VDI client 320 may be any virtual machine execution, while in other embodiments the computing device 201 or hypervisor 202 can perform VDI client 320. VDI客户端320可以是建立与在远程计算设备203上执行的VDI平台310的通信链路的程序或应用。 VDI client 320 may be a program or application to establish a communication link with VDI platform executing on the remote computing device 203 310. 当与VDI平台310建立链路时,VDI客户端320可流式传输或下载VDI平台310 所管理的资源,并且发送关于其他虚拟机232的VDI平台310信息,诸如虚拟机性能指标或用户活动数据。 When establishing a link with VDI platform 310, VDI client 320 may be streamed or downloaded resources managed by the VDI platform 310, and transmits information about other virtual machines 310 232 VDI platform, such as a virtual machine performance metrics or user activity data . 在一些实施例中,VDI客户端320可与VDI平台310通信来接收虚拟机数据。 In some embodiments, VDI client 320 may receive the virtual machine 310 and the data communication VDI platform. 使用该虚拟机数据,VDI客户端320可从该虚拟机数据实例化、执行或以其他方式产生虚拟机。 Data using the virtual machine, the VDI client 320 may be instantiated data from the virtual machine, the virtual machine is generated or executed in other ways.

[0086] 在一个实施例中,VDI客户端320使用虚通道与远程计算机通信。 [0086] In one embodiment, VDI client 320 using the virtual channel to communicate with remote computers. 在其他实施例中,VDI客户端320可使用虚通道与在任何远程计算机上执行的任何客户机或任何应用通信。 In other embodiments, VDI client 320 may be used with any virtual channel client executing on a remote computer or any application to any communications. 在一些实施例中,虚通道可以是通信通道或使用ICA协议的任何其他通信链路。 In some embodiments, the virtual channel may be any channel or other communication link using the ICA protocol.

[0087] 尽管图3图示了VDI客户端320,但在一些实施例中虚拟化环境302可以不包含VDI客户端320。 [0087] Although Figure 3 illustrates a VDI client 320, in some embodiments, the virtualization environment 302 may not comprise VDI client 320. 在一个实施例中,VDI客户端320也可与虚拟机管理器352通信。 In one embodiment, VDI client 320 may communicate with the virtual machine manager 352. 在一些实施例中,虚拟机管理器352可以是Citrix Systems发布的XENSERVER应用。 In some embodiments, the virtual machine manager 352 may be released XENSERVER Citrix Systems application. 在又一个实施例中,虚拟化环境302可以不包括VDI客户端320,而是包括控制程序220,所述控制程序220与在远程计算机上执行的虚拟机部署应用或虚拟机管理器通信。 In yet another embodiment, the virtualization environment 302 may not include a VDI client 320, but includes a control program 220, the control program 220 of the virtual machine or virtual machine deploy applications communicate with the manager executing on the remote computer.

[0088] 在一些实施例中,在虚拟化环境302中执行的控制虚拟机232A或任何其他虚拟机232或应用可以与性能监控系统316通信以便传输用于在虚拟化环境302中执行的虚拟机232的虚拟机性能指标。 [0088] In some embodiments, the control performed in the virtualization environment 302 in the virtual machine 232A or any virtual machine or other virtual machine 232 may communicate with application performance monitoring system 316 for transmission and for performing the virtualization environment 302 232 virtual machine performance. 在一些实施例中,虚拟机性能指标可包括任何下列指标:盘的使用量统计;处理器负载统计;带宽使用量统计;平均负载统计;吞吐量统计;关于在任何一个时间周期的计算资源的使用量的统计;执行具体进程所用的时间;虚拟机已使用了多长时间;在任何时间周期计算系统资源的可利用性;以及任何其他有关的虚拟机性能指标。 In some embodiments, the virtual machine may include any of the following performance index: disk usage statistics; processor load statistics; bandwidth usage statistics; average load statistics; throughput statistics; computing resources on a time period of any usage statistics; the execution time of the specific process used; virtual machine has been used for how long; computing system resources at any time cycle availability; and any other relevant virtual machine performance. 尽管在一些实施例中,控制虚拟机232A直接与性能监控系统316通信,但在其他实施例中,控制虚拟机232A通过虚拟机管理器352与性能监控系统316间接地通信。 While in some embodiments, the virtual machine 232A controls the communication directly with the performance monitoring system 316, in other embodiments, the control virtual machine 232A 316 indirectly through the virtual machine manager 352 and performance monitoring system.

[0089] 在其他实施例中,在虚拟化环境302中执行的控制虚拟机232A或任何其他虚拟机232或应用可以与性能监控系统316直接地或间接地通信以便向性能监控系统316传输所记录的用户会话信息。 [0089] In other embodiments, the control performed in the virtualization environment 302 in the virtual machine 232A or any other virtual machine 232 or application may be to the recorded performance monitoring system 316 either directly or indirectly in communication with the transmission performance monitoring system 316 user session information. 在一些实施例中,具体用户可访问虚拟化环境302中的一个或多个虚拟机232。 In some embodiments, a particular user may access one or more virtual environment 302 in the virtual machine 232. 该用户可访问虚拟机上可利用的系统资源,可使用与虚拟机接口的网络,或以其他方式与虚拟机交互。 The user can access the virtual machine available system resources can be used with the virtual machine network interface, or otherwise interact with the virtual machine. 在一些实施例中,通过与虚拟机交互,用户可以产生用户信息、用户数据、用户统计或用户性能信息。 In some embodiments, by interacting with the virtual machine, the user may generate user information, user data, user or user performance statistics information. 该用户信息可以被捆绑于特定用户或用户会话并且可以通过拦截响应于在用户会话上下文中的用户活动所产生的信息和数据而获得。 The user information may be tied to a particular user or user session and obtain information and data in response to a user session in the context of user activity generated by the interception. 用户信息可以包括:在用户会话304期间用户所请求的资源量;用户所访问的应用数量;在用户会话304期间由用户所产生的用户请求所引起的平均负载量;用户标识符;满足用户请求所需的带宽数量;以及任何其他有关的用户性能信息。 The user information may include: the amount of resources the user 304 during the session the user request; number of applications accessed by the user; 304 during the user session average load user request generated by a user caused; user identifier; satisfy a user request the amount of bandwidth required; user performance and any other relevant information.

[0090] 在一些实施例中,用户会话信息可包括记录用户会话的开始时间和结束时间的会话记录。 [0090] In some embodiments, the user session information may include recording the session start and end time for recording user sessions. 被传输到性能监控系统316的用户会话信息可包括会话记录,以及在一些实施例中可包括任何下列信息:用户访问或以其他方式使用的时间周期(例如,日期和时间);用户的用户标识符;以及用户所访问的虚拟机的标识符。 Is transmitted to the performance monitoring system user session information 316 may include a session record, and in some embodiments may comprise any of the following information: user access or otherwise use time period (e.g., date and time); user's user ID Fu; and an identifier of the user to access a virtual machine.

[0091] 在一些实施例中,当虚拟机指标被传输到性能监控系统316时,这些指标根据访问虚拟机的用户而被记录或存储。 [0091] In some embodiments, when the virtual machine is transmitted to the indicator the performance monitoring system 316, these indicators according to the user to access the virtual machine is recorded or stored. 例如当用户终止用户会话时,在用户会话期间所产生的用户会话信息和虚拟机指标可被传输到性能监控系统316。 For example when the user terminates the user session, user session information and virtual machine metrics generated during the user session can be transmitted to the performance monitoring system 316. 在一些实施例中,虚拟机指标可以以这种方式被映射到用户会话信息上,即虚拟机指标可与指示器一起被存储,所述指示器指示指标是在用户会话信息所描述的会话期间所产生的。 In some embodiments, the virtual machine metrics can be mapped in this way to the user session information, i.e., the virtual machine metrics can be stored together with the indicator, the indicator is an indicator indicating the session during a user session information described produced. 因此,如果虚拟机指标被存储在数据库中,那么包含虚拟机指标的记录可包括识别在该用户会话期间产生了虚拟机指标的用户会话的字段。 Thus, if the virtual machine metrics are recorded in the database, then the virtual machine contains a memory index identifying may comprise generating a field of the user's virtual machine metrics session during that user session. 这个字段可进一步包括关于用户或用户会话的信息。 This field may further include information about the user or user session. 在一些实例中, 该字段可指向所存储的信息的另一个记录或集合,其进一步描述用户会话、用户、用户工作负载简档或用户的分类。 In some other examples, this field may point to the stored information or set of records, which is further described in the user session, user, or user workload profile of the user classification. 在一些实施例中,所存储的虚拟机信息和会话标识符的组合的集合可以被称为用户工作负载简档。 In some embodiments, the set of stored session identifier information and virtual machines may be referred to as a combination of a user workload profile.

[0092] 其他实施例中,当虚拟机指标与用户会话信息相结合以便创建工作负载简档或者产生用户指定的虚拟机指标的记录时,虚拟机指标可以根据用户会话信息而被删减或者被修改。 [0092] In other embodiments, the virtual machine when the index and the user session information to create combined workload profile or generates the virtual machine records the user specified when the index, the virtual machine metrics may be cut by the user or session information modify. 例如,当用户会话信息指示用户会话持续了从时间A到时间B的时间时,删除在从时间A持续到时间B的时间周期之外所产生的任何虚拟机指标。 For example, when the user session information indicates that the session duration time from the time A to time B, the virtual machine metrics remove any sustained time period from time A to time B generated outside. 类似地,如果额外的虚拟机指标被识别为在从时间A持续到时间B的时间周期期间所产生的,则这些指标被附加到所存储的虚拟机指标。 Similarly, if the additional indicator is identified as a virtual machine in the generated time period to the duration of the time period from the time A B, these indicators are indicators to the virtual machine stored. 对用户指定的虚拟机指标的工作负载简档或记录的修改可以发生在当简档或记录产生时或者稍后的时刻。 Modification work on a user-specified virtual machine metrics of load profiles or records can occur when the profile or to produce records or a later time. 在一些实施例中,工作负载简档存储322 (例如,性能数据库)可在此处所存储的工作负载记录上执行修改。 In some embodiments, the workload profile storage 322 (e.g., a performance database) may be performed on a modified herein workload stored records.

[0093] 在一个实施例中,远程计算设备203可执行VDI平台310。 [0093] In one embodiment, the remote computing device 203 may perform VDI platform 310. 虚拟桌面架构(VDI)平台310可以是能实现和管理虚拟桌面架构的任何平台。 Virtual desktop infrastructure (VDI) platform 310 may be able to implement and manage any virtual desktop infrastructure platform. 在一个实施例中,VDI平台310可与在计算设备203上执行的其他应用或程序通信,并且在一些实施例中,可与性能监控系统316通信。 In one embodiment, the VDI platform 310 can, and in the embodiment, the performance monitoring system may communicate with other applications or embodiments programs 316 executing on the communication device 203 in some computing. 在其他实施例中,VDI平台310可与虚拟机管理器352通信。 In other embodiments, VDI platform 310 may communicate with the virtual machine manager 352.

[0094] VDI平台310可以是由位于佛罗里达州的Fort Lauderdale的Citrix Systems公司制造的XEN DESKTOP产品系列提供的任何平台。 [0094] VDI platform 310 can be made from Lauderdale, Florida, Citrix Systems, Inc. of Fort any platform XEN DESKTOP product family provides. 在一个实施例中,VDI平台310可以是在用户和VDI平台310间建立用户会话的平台。 In one embodiment, VDI platform 310 may be a platform for establishing a user session between the user and the VDI platform 310. 尽管图3示出了在VDI平台310之外的虚拟机池,但在一些实施例中,VDI平台310可访问虚拟机池312的虚拟机232并且可以向用户会话分配虚拟机232。 Although FIG. 3 shows a pool of virtual machines beyond the VDI platform 310, in some embodiments, the VDI platform 310 can access the virtual machine pool 312 of virtual machine 232 to virtual machine 232 and may assign a user session. 在其他实施例中,VDI平台310可以向用户会话分配虚拟桌面和其他类似资源。 In other embodiments, VDI platform 310 may be a virtual desktop and other similar resources assigned to the user session. VDI平台310也可管理被分配给用户会话的虚拟资源并且还可执行负载平衡功能以基于多种标准负载平衡用户会话间的虚拟资源。 VDI platform 310 may also manage the virtual resources are allocated to a user session and may also perform load balancing based on a plurality of virtual resource standard load balancing between user sessions. 在一些实施例中,VDI平台310被称为虚拟桌面架构、虚拟桌面架构环境或虚拟桌面架构系统。 In some embodiments, the VDI platform 310 is referred to as the virtual desktop architecture, virtual desktop infrastructure or virtual desktop infrastructure system.

[0095] 在一些实施例中,VDI平台310可包含虚拟桌面代理350。 [0095] In some embodiments, VDI platform 310 may include a virtual desktop broker 350. 在一些实施例中,虚拟桌面代理350可接收来自用户的对虚拟机的请求并且通过从虚拟机池312请求虚拟机来响应那些请求。 In some embodiments, the virtual desktop broker 350 may receive a request for a virtual machine from the user and to respond to the request by requesting that a virtual machine from a pool of 312 virtual machine. 尽管图3图示了其中在VDI平台310内执行虚拟桌面代理350的实施例,但其他实施例中,VDI平台310可以不包括虚拟桌面代理350。 While FIG 3 illustrates a case where the implementation of a virtual desktop in the VDI platform agent 310 Example 350, but other embodiments, VDI platform 310 may not include a virtual desktop broker 350. 在那些实施例中,VDI平台310 可执行虚拟桌面代理350的功能。 In those embodiments, VDI platform 310 may perform functions of the Virtual Desktop Agent 350. 例如,VDI平台310可接收对虚拟机的请求,并且可以响应地为向VDI平台310发出虚拟机请求的用户请求虚拟机。 For example, the VDI platform 310 may receive a request for a virtual machine, and may be in response to a user issued to virtual machine request VDI platform 310 requests the virtual machine. 在一个实施例中,VDI平台310 可向用户或用户的用户会话传输虚拟机,在其他实施例中虚拟机管理器352可向用户或用户的用户会话传输虚拟机。 In one embodiment, the VDI platform 310 may be a virtual machine to a user or user session transmits the user, in other embodiments the virtual machine manager 352 may be a user or a user session of the user of a virtual machine.

[0096] 在一些实施例中,VDI平台310可管理用户会话池或用户会话组314 (此处总称为用户会话池314)。 [0096] In some embodiments, VDI platform 310 may manage the user groups or user session session pool 314 (herein collectively referred to as user session pool 314). 用户会话池或组314可包括在用户和VDI平台310之间所创建的一个或多个用户会话304。 User session pool or set 314 may include one or more user sessions between the user and the VDI platform 310 creates 304. 在一些实施例中,当使用位于远离计算设备203的客户端计算设备的用户请求虚拟桌面或虚拟机,或者请求访问虚拟桌面或虚拟机时,可产生用户会话304。 In some embodiments, when the user is using a computing device located remotely from the client computing device 203 requests the virtual desktop or a virtual machine, or virtual desktop or requests access to the virtual machine 304 may generate a user session. 在其他实施例中,当用户通过远程客户端计算机登录到VDI平台310时可创建用户会话304。 In other embodiments, when a user logs on to the remote client computer via internet VDI can create a user session when 304,310. 仍在其他实施例中包括当用户请求通过虚拟机或虚拟桌面访问可利用的应用或资源时所创建的用户会话304。 Examples include still user session when a user requests an application or a virtual machine or virtual desktop resources are accessible through the created when using the other embodiments 304.

[0097] 在一些实施例中,用户会话304可以是计算设备203和客户机的用户之间的会话, 或者是VDI平台310和客户机的用户之间的会话。 [0097] In some embodiments, a user session may be a session 304 between the user 203 and the client computing device, or a user session between the platform 310 and VDI client. 在一个实施例中,响应于登录VDI平台310的用户请求、访问应用或资源的用户请求,或者对虚拟机和虚拟桌面的用户请求,VDI 平台310可创建用户会话304。 In one embodiment, the VDI platform 310 in response to the login request of the user, an application or user requests access to resources, or virtual machines and virtual desktop user request 310 VDI platform 304 can create a user session. 用户可从用户会话304中访问VDI平台310的一些方面,类似地,在用户会话304中用户可与被分配给用户的虚拟机232交互。 The user can interact with the user 232 sessions 304 access to some aspects of the VDI platform 310, and similarly, the user 304 in the user session may be assigned to the user's virtual machine.

[0098] 计算设备203可存储和/或执行虚拟机的池或组(此处总称为虚拟机池312)。 [0098] The computing device 203 may store and / or execute a virtual machine pool or group (herein collectively referred to as a virtual machine pool 312). 这个虚拟机池或组可包括一个、两个或多个虚拟机232。 The virtual machine may comprise a pool or group, two or more virtual machines 232. 在一些实施例中,虚拟机232可以是虚拟机模板,当虚拟机模板被流式传输或下载到虚拟化环境302时,虚拟机模板可被配置和执行以便产生或实例化虚拟机232。 In some embodiments, the virtual machine 232 may be a virtual machine templates, the template is 302 when the virtual machine, the virtual machine templates may be configured and perform streaming or downloaded to the virtual environment so as to create or instantiate a virtual machine 232. 在其他实施例中,虚拟机232可以是可执行指令、应用或其他计算资源的集合,所述集合在被流式传输或下载到虚拟化环境302中时,可以被配置和执行以便产生或实例化虚拟机232。 In other embodiments, the virtual machine 232 may be a set of executable instructions, applications or other computing resources, when the collection is 302, and may be configured to perform streaming or downloaded to a virtual environment, or to produce examples virtual machine 232. 尽管图3图示了其中虚拟机池312不依赖另一个应用而存在的实施例,但在一些实施例中虚拟机池312可被虚拟机管理器352所管理。 While FIG 3 illustrates a case where the virtual machine pool application 312 does not depend on the presence of the other embodiments, in some embodiments the virtual machine pool 312 embodiment may be a virtual machine manager 352 Management. 仍在其他实施例中,虚拟机池312可以在虚拟机管理器352的上下文中被存储和被执行。 In still other embodiments, the virtual machine pool 312 may be stored and executed in the context of the virtual machine manager 352 in. 仍在其他实施例中,虚拟机池312可以在远程计算机上被维护。 In still other embodiments, the pool of virtual machines 312 may be maintained on the remote computer. 仍在其他实施例中,虚拟机池312可以被在远程计算机上执行的虚拟机管理器352维护。 In still other embodiments, the pool of virtual machines 312 may be maintained 352 executing on the remote computer hypervisor. 例如,虚拟机池312可以被在远程计算机上执行的XENSERVER应用所维护。 For example, the pool of virtual machines 312 may be maintained XENSERVER application executing on the remote computer. 仍在其他实施例中,虚拟机池312可以被VDI 平台310维护。 In still other embodiments, the pool of virtual machines 312 may be maintained VDI platform 310. 在这些实施例的任何一个中,VDI平台310可以与管理虚拟机池312的应用通信并且可以请求该应用使虚拟机池312中的某个虚拟机成为可利用的。 In any of these embodiments, VDI management application platform 310 can communicate with a pool of virtual machines 312 and the application may request that the virtual machine a virtual machine pool 312 becomes available.

[0099] 计算设备203还可执行虚拟机管理器352。 [0099] Computing device 203 may also execute a virtual machine manager 352. 虚拟机管理器352可根据一组标准配置虚拟机和以其他方式给用户分配虚拟机。 Virtual machine manager 352 may be configured to assign the user to a virtual machine and a virtual machine to another according to a set criteria. 在一些实施例中,虚拟机管理器352可与性能监控系统316通信以便获得用户工作负载简档、用户的分类、虚拟机指标、用户会话信息或其他用户指标或虚拟机指标。 In some embodiments, the virtual machine manager 352 may communicate with the performance monitoring system 316 to obtain user workload profile, user classification, virtual machine metrics, user session information or other user indicators or virtual machine metrics. 虚拟机管理器352可使用该信息来确定如何配置虚拟机、哪个虚拟机被分配给用户或用户会话或在哪里执行虚拟机。 Virtual machine manager 352 can use this information to determine how to configure a virtual machine, which virtual machine is assigned to a user or user session or execute virtual machine where it is. 在一些实施例中,虚拟机管理器352可以管理虚拟机池312。 In some embodiments, the virtual machine manager 352 can manage the pool of virtual machines 312. 在其他实施例中,虚拟机管理器352可以是Citrix Systems 发布的XENSERVER应用。 In other embodiments, the virtual machine manager 352 may be released XENSERVER Citrix Systems application. 尽管图3图示了与VDI平台310和性能监控系统316在同一机器上执行的虚拟机管理器352,但在其他实施例中虚拟机管理器352可在远程机器上执行。 While FIG 3 illustrates a virtual machine manager VDI platform 310 and the performance monitoring system 316 executing on the same machine 352, but the embodiment of the virtual machine manager 352 may be executed on a remote machine in the other.

[0100] 在一些实施例中,虚拟机管理器352可以给用户会话和用户会话的用户分配虚拟机。 [0100] In some embodiments, the virtual machine virtual machine manager 352 may assign the user to a user session and the user session. 给用户会话或用户分配虚拟机可包括产生虚拟机或者选择虚拟机。 A user session assigned to a user or virtual machines may comprise generating or selecting the virtual machine a virtual machine. 当分配包括产生或配置虚拟机时,虚拟机管理器352可根据用户需求创建虚拟机。 When dispensing or configuration includes generating a virtual machine, the virtual machine manager 352 can create a virtual machine according to user needs. 这些需求可以由用户、用户会话、管理员、用户简档或虚拟机标准的任何其他集合所传送。 These requirements can be delivered by any other collection of users, user session, administrator, user profile or virtual machine standard. 在一些实施例中,虚拟机的组件可以根据过去的用户活动而被动态地确定。 In some embodiments, the components of the virtual machine may be dynamically determined based on past user activity. 仍在其他实施例中,虚拟机可以至少部分地根据用户的分类而被配置或产生,例如用户分类为重度、中度或轻度用户。 In still other embodiments, the virtual machine can be disposed at least partially generated according to a user or classification, such as the user classification severe, moderate or mild user. 当分配包括选择虚拟机时,虚拟机管理器352可从现有虚拟机的池中选择虚拟机。 When allocating comprises selecting a virtual machine, the virtual machine manager 352 can select a virtual machine from a pool of existing virtual machines. 该选择可以根据用户或用户会话标准、用户简档、用户的分类或类似信息而作出。 The selection may be based on user or session level user, user profile, user classification or the like made.

[0101] 在一些实施例中,计算设备203可以执行性能监控系统316。 [0101] In some embodiments, the computing device 203 may perform the performance monitoring system 316. 在一些实施例中,VDI 平台310可以与性能监控系统316通信。 In some embodiments, VDI platform 310 may communicate with the performance monitoring system 316. 在其他实施例中,性能监控系统316可以通过VDI 平台310所显露的应用接口与VDI平台310通信,或者通过VDI平台310和性能监控系统316之间所建立的内部通信通道与VDI平台310通信。 In other embodiments, the application interface 316 may communicate 310 with a VDI platform exposed through VDI platform 310, or communication channel 310 with the interior of the communication through the internet VDI VDI platform 310 and the performance monitoring system 316 established between the performance monitoring system. 在一个实施例中,性能监控系统316 在VDI平台310之外执行,使得性能监控系统316作为不依赖于VDI平台310的独立应用而执行。 In one embodiment, the performance monitoring system 316 performs outside the VDI platform 310, such as the performance monitoring system 316 does not rely on a separate application platform 310 VDI performed. 在其他实施例中,性能监控系统316可以被包含在VDI平台310内。 In other embodiments, the performance monitoring system 316 may be included in the VDI platform 310. 仍在其他实施例中,VDI平台310和性能监控系统316可在分开的计算机上执行,这样VDI平台310可在一个计算机上执行并且性能监控系统316在远离第一计算机的第二计算机上执行。 In still other embodiments, the VDI platform 310 and the performance monitoring system 316 may be executed on a separate computer, so that the VDI platform 310 may execute on a computer a performance monitoring system 316 and executed on a second computer remote from the first computer. 在这个实施例中,VDI平台310可通过虚通道和/或VDI平台310和/或性能监控系统316所展示的应用接口与网络上的性能监控系统316通信。 In this embodiment, the VDI platform 310 virtual channels and / or VDI platform 310 / or 316 and the communication performance monitoring system illustrated in the application interface with the network performance monitoring system 316 may be adopted.

[0102] 虚拟机指标信息和用户会话信息可以在VDI平台310和性能监控系统316之间共享。 [0102] virtual machine metrics information and user session information can be shared between the VDI platform 310 and the performance monitoring system 316. 在一些实施例中,当VDI平台310接收VDI代理306所记录的会话信息或虚拟机指标时,VDI平台310可将那个信息转发到性能监控系统316。 In some embodiments, when the VDI VDI platform agent 306 receiving 310 the recorded session information or virtual machine metrics, VDI platform 310 may forward that information to the performance monitoring system 316. 在其他实施例中,性能监控系统316可通过应用接口或通信信道与VDI平台310交互,使得性能监控系统316可以基本上自动接收VDI代理306所记录的且被传输到VDI平台310的任何虚拟机指标信息或用户会话信息。 In other embodiments, the performance monitoring system 316 may be through the application interface interaction or communication channel with VDI platform 310, so that the performance monitoring system 316 may be substantially automatically receive VDI agent 306 recorded and transmitted to the VDI internet any virtual machine 310 index information or user session information. 仍在其他实施例中,VDI代理306可以直接地向远程计算机203上的性能监控系统316传输虚拟机指标信息和用户会话信息。 In still other embodiments, VDI agent 306 may be directly to a performance monitoring system information on the remote computer 203,316 index information of a virtual machine and the user session. 仍在其他实施例中,性能监控系统316可以直接地从虚拟化环境302中接收用户会话信息和/或虚拟机指标信息。 In still other embodiments, the performance monitoring system 316 may receive user session information and / or virtual machine index information directly from the virtual environment 302.

[0103] 性能监控系统316可包括虚拟机指标存储仓库324和会话记录存储仓库330。 [0103] the performance monitoring system 316 may include a virtual machine metrics session record repository 324 and repository 330. 在一个实施例中,虚拟机指标存储仓库324可以是存储虚拟机指标的数据库或其他存储仓库。 In one embodiment, the virtual machine metrics repository 324 may be a memory of a virtual machine metrics database or other repository. 虚拟机指标324可根据其所对应的虚拟机而被存储,以及在一些实施例中,也可以根据访问虚拟机的用户而被存储,例如虚拟机可针对具体用户而被存储。 Virtual machine metrics 324 may be stored according to its corresponding virtual machine, and in some embodiments, may be stored according to the user access the virtual machine, for example virtual machine may be stored for a particular user. 性能监控系统316还可包括会话记录存储330。 Performance monitoring system 316 may further include a session record 330 is stored. 在一些实施例中,会话记录存储330存储用户会话信息。 In some embodiments, the session record storage 330 stores user session information. 用户会话信息可根据会话信息所对应的用户而被存储。 User session information may be stored according to the user information corresponding to the session. 在其他实施例中,用户会话信息可根据会话信息所对应的用户和虚拟机而被存储。 In other embodiments, the user session information may be stored according to the corresponding user session information and virtual machines. 尽管图3图示了分开的会话记录存储330和虚拟机指标存储324,但在一些实施例中用户会话信息和虚拟机指标信息可以被存储在同一仓库中。 While FIG 3 illustrates a separate session record storage 330 and virtual machine metrics storage 324, in some embodiments the user session information and virtual machine metrics information may be stored in the same repository.

[0104] 在一些实施例中,性能监控系统316可以包括用户工作负载简档存储322。 [0104] In some embodiments, the performance monitoring system 316 may include a user workload profile storage 322. 用户工作负载简档存储322可以存储从用户会话信息和虚拟机指标所产生的用户工作负载。 User workload profile storage 322 can store user session information from the user workloads and virtual machine metrics generated. 在一些实施例中,用户工作负载简档存储322可以是单独的存储仓库,而在其他实施例中,用户工作负载简档存储322可以与会话记录存储330或虚拟机指标存储324组合成为单个存储仓库。 In some embodiments, user workload profile storage 322 may be a separate storage repository, while in other embodiments, user workload profile storage 322 may session record stored in the storage 324 combination 330 or virtual machine metrics with as a single storage warehouse. 仍在其他实施例中,用户工作负载简档存储322可根据对应的用户和/或虚拟机存储用户工作负载简档。 In still other embodiments, user workload profile storage 322 may load profile according to the corresponding user and / or store user virtual machine working examples. 在一些实施例中,用户工作负载简档可指用户指定的虚拟机指标的记录。 In some embodiments, user workload profile may refer to the virtual machine records the user specified index. 这些指标可以是与具体用户或用户会话相关联的虚拟机性能数据。 These indicators may be associated with a particular user or user session performance data VM. 在一些实施例中,用户工作负载简档可包括指向具体用户或用户会话的指针。 In some embodiments, user workload profile may include a pointer to a particular user or user session. 这个指针用于识别在另一记录、存储仓库或数据库中所存储的用户信息、用户会话信息或者用户的分类信息。 This pointer is used to identify another recording, the user information storage repository or database stored in the user session information or the user information classification.

[0105] 性能监控系统316还可包括虚拟机性能监控器326和会话监控器332。 [0105] the performance monitoring system 316 may further include a virtual machine 326 and performance monitor session monitor 332. 在一些实施例中,虚拟机性能监控器326和会话监控器332向虚拟化环境302中的控制程序220查询虚拟机性能指标和用户会话信息。 In some embodiments, the virtual machine and performance monitor 326 queries the session monitor 332 220 virtual machine performance metrics and user session information to the virtual environment 302 of the control program. 在其他实施例中,虚拟机性能监控器326和会话监控器332可直接从VDI平台310获得虚拟机性能指标和用户会话信息。 In other embodiments, the virtual machine 326 and performance monitor session monitor 332 may obtain 310 the virtual machine and performance metrics directly from the user session information VDI internet. 仍在其他实施例中, 虚拟机性能监控器326和会话监控器332可从在虚拟化环境302中执行的VDI客户端320 获得虚拟机性能指标和用户会话信息。 In still other embodiments, the virtual machine 326 and performance monitor 332 may obtain the session monitor VM performance and user session information from VDI client 320 executing within the virtual environment 302. 尽管图3示出了分开的虚拟机性能监控器326和会话监控器332,但在一些实施例中,二者各自的功能可以被单独一个监控器处理。 Although FIG. 3 shows a separate virtual machine performance monitor 326 and the session monitor 332, in some embodiments, both the respective functions may be separately processed one monitor. 在一些实施例中,虚拟机性能监控器326可以请求和获得虚拟机性能指标。 In some embodiments, the virtual machine performance monitor 326 may request and obtain the virtual machine performance. 当收到虚拟机性能指标时,虚拟机性能监控器326可在虚拟机存储仓库324中存储所接收的指标。 Upon receipt of the virtual machine performance, the performance of the virtual machine monitor 326 may store the received indicators in the virtual machine 324 in the storage repository. 会话监控器332 可请求和获得用户会话信息。 Session monitor 332 may request and obtain user session information. 当收到用户会话信息时,会话监控器332可在会话记录存储330中存储所接收的会话信息。 When receiving the user session information, session monitor 332 may store the received session information in the session record storage 330.

[0106] 在一些实施例中,性能监控系统316可包括分类系统318,所述分类系统318可根据用户工作负载简档分类用户,所述用户工作负载简档可以被存储在用户工作负载简档存储322中。 [0106] In some embodiments, the performance monitoring system 316 may include a classification system 318, 318 according to the user workload profile user classification, the user workload profile may be a user workload profile stored in said classification system storage 322. 分类系统318可浏览用户工作负载简档数据并且使用该数据来将用户分为一个或多个类。 Classification system 318 may browse user workload profile data and use this data to users into one or more classes. 这些分类可以是预定义的或者可以根据用户工作负载简档存储322中所存储的用户工作负载简档数据而动态地产生。 These categories may be predefined or may be dynamically generated according to a user workload profile data of the user workload profile stored in memory 322. 例如,分类系统318可根据每个用户的工作负载简档将用户分类为"轻度"、"中度"或"重度"用户。 For example, the classification system 318 may each user workload profile according to the user classified as "mild", "moderate" or "heavy" user. 在一些实施例中,分类反映了每个用户消耗的资源数量。 In some embodiments, the classification reflects the amount of resources consumed by each user. 例如,分类可反映具体用户通常所使用的磁盘容量、网络带宽或CPU周期。 For example, classification may reflect disk capacity, network bandwidth, or CPU cycles typically used by a specific user. 在一个实施例中,归类"轻度"、"中度"或"重度"可包括确定用户的使用份额超过预先确定的阀值的百分比或倍数。 In one embodiment, the collation "slight", "moderate" or "severe" may include determining a user's use or multiple share exceeds a predetermined percentage threshold.

[0107] 图4所示的是用于记录虚拟机指标并将这些指标与用户相关联的方法400的一个实施例。 Is [0107] shown in Figure 4 for recording the index and the virtual machine These metrics associated with the user with a method embodiment 400 of the embodiment. VDI平台310或虚拟桌面代理350可接收登录VDI平台310的用户请求(步骤402)。 VDI platform 310 or agent 350 may receive virtual desktop login user request VDI platform 310 (step 402). 作为回应,VDI平台310可初始化用户会话(步骤404)并且虚拟机管理器352可给用户分配虚拟机(步骤406)。 In response, VDI platform 310 may initiate a user session (step 404) and the virtual machine manager 352 can assign the user to a virtual machine (step 406). 然后,VDI平台310可向性能监控系统316传输指示已将虚拟机传输到用户的信息(步骤408),接着,性能监控系统316可针对用户标识符记录虚拟机指标(步骤410)。 Then, the VDI platform 310 may indicate the performance monitoring system 316 to transmit the virtual machine has to transmit information of the user (step 408), then the performance monitoring system 316 may be a virtual machine identifier of the recording indicator (step 410) for the user.

[0108] 进一步参考图4,且在一些实施例的更多细节中,方法400可包括接收登录VDI平台310的用户请求(步骤402)。 [0108] With further reference to FIG. 4, and in some embodiments further details of the embodiment, the method 400 may include receiving a user request log VDI platform 310 (step 402). 在一些实施例中,用户请求是由使用远程客户端计算机的用户所发出的。 In some embodiments, the user requested by the user using a remote client computer issued. 用户请求可以是登录VDI平台310的请求,而在其他实施例中,请求可以是对虚拟机的请求、对桌面的请求或执行应用的请求。 A user request may be a request log VDI platform 310, while in other embodiments, the request may be a request for a virtual machine, or a request for a desktop request for execution of the application. 在一个实施例中,VDI平台310拦截用户请求,而在其他实施例中虚拟桌面代理350拦截用户请求。 In one embodiment, the VDI platform 310 intercepting a user request, while in other embodiments, the virtual desktop user agent 350 intercepts the request.

[0109] VDI平台310或虚拟桌面代理350可通过初始化用户会话来对接收用户请求作出响应(步骤404)。 [0109] VDI virtual desktop platform agent 350 or 310 may respond (step 404) a request for the user through the user session initialization. 在一些实施例中,这个用户会话可与发出该请求的用户相关联或者以其他方式表示发出该请求的用户。 In some embodiments, the user session may be associated with the user issuing the request or otherwise indicates the user who issued the request. 因此,用户会话的用户会话信息可以是表示用户会话中的用户活动的信息。 Therefore, the user session information user session may be information indicating user activity user session. 在一些实施例中,VDI平台310可以为用户开始新的用户会话,而在其他实施例中VDI平台310可以重启所缓存的与用户相关联的用户会话。 In some embodiments, the VDI platform 310 can start a new user session for the user, while in other embodiments the VDI platform 310 can restart the cached user session associated with the user.

[0110] 在一些实施例中,当初始化用户会话时,VDI平台310可请求虚拟机管理器352 给用户分配或指定虚拟机(步骤406)。 [0110] In some embodiments, when a user session is initialized, the VDI platform 310 may request a virtual machine manager 352 assigned to the user or a specified virtual machine (step 406). 给用户分配虚拟机可包括流式、下载或以其他方式向用户的用户会话传输虚拟机。 Virtual machine assigned to the user may include streaming, downloading, or user sessions of a virtual machine to the user otherwise. 在一些实施例中,VDI平台310在收到对虚拟机的用户请求时,传输给用户分配虚拟机的请求。 In some embodiments, the VDI platform 310 upon request for a virtual machine user, transmitted to the requesting user assigned virtual machine. 在其他实施例中,VDI平台310可在初始化用户会话时,传输给用户分配虚拟机的请求。 In other embodiments, the VDI platform 310 may be initialized when the user session, transmitted to the requesting user assigned virtual machine.

[0111] 当向用户的用户会话传输虚拟机时,可以将指示虚拟机已经被分配给用户的信息传输到性能监控系统(步骤408)。 [0111] When the virtual machine to the user transmits the user's session, indicating that the virtual machine may be allocated to the transmission of information to the user of the performance monitoring system (step 408). 在一些实施例中,VDI平台310也可被通知虚拟机已被传输到用户的用户会话。 In some embodiments, VDI platform 310 may also be notified virtual machine has been transmitted to the user's user session. 仍在其他实施例中,方法400可不包括通知性能监控系统316的步骤;而是,虚拟机管理器352可为性能监控系统316管理获得用户会话信息和虚拟机指标。 Embodiment, the method 316 comprises the step 400 may notify performance monitoring system still other embodiments; rather, the virtual machine manager 352 may obtain user session information and virtual machine metrics for the performance monitoring system 316 management. 向性能监控系统316或VDI平台传输指示已向用户会话传输虚拟机的信息可包括传输虚拟机的标识符、虚拟机的特征或其他识别信息。 It indicates the performance monitoring system 316 or VDI platform the user session information has been transmitted to the virtual machine may include a transmission characteristic of a virtual machine identifier of the virtual machine, or other identifying information. 标识符可以是虚拟机ID、虚拟机名称、虚拟机序列号或其他标识符。 May be a virtual identifier your crash ID, the name of the virtual machine, the virtual machine serial number or other identifier. 虚拟机特征可包括被包含在虚拟机中的虚拟盘的类型和大小、被包含在虚拟机中的操作系统、被包含在虚拟机中的虚拟CPU、被包含在虚拟机中的应用以及被传输到用户的用户会话的虚拟机的任何其他特征。 Virtual machine characteristics may include the type and size are contained in the virtual machine virtual disk, the operating system is contained in a virtual machine, and is included in the virtual machine virtual the CPU, is used in the virtual machine comprising and being transmitted any other characteristic of the virtual machine to the user's user session.

[0112] 记录响应于用户请求初始化用户会话所产生的用户会话信息和被分配给用户会话的虚拟机的虚拟机指标(步骤410)。 [0112] recording in response to a user request for a virtual machine metrics generated to initialize the user session and the user session information to a user session assigned virtual machine (step 410). 尽管方法400包括记录用户会话信息和虚拟机指标的步骤,但在一些实施例中该步骤可包括针对用户标识符记录虚拟机指标。 Although the method comprising recording user session information 400 and virtual machine index step, in some embodiments, this step may include a user identifier for a virtual machine metrics recorded. 在这些实施例中,可以不记录用户会话信息。 In these embodiments, the user may not record the session information. 而是,可记录用户标识符并且使用用户标识符来针对具体用户存储虚拟机指标。 Instead, it can record the user identifier and the user identifier to use for specific users to store virtual machine metrics. 在一些实施例中,虚拟机指标可以被在虚拟机中执行的控制程序220、 VDI客户端320或应用的任何一个所记录。 In some embodiments, the virtual machine control program may be executed index in the virtual machine 220, VDI client 320, or any of the recorded application. 当用户会话终止时,虚拟机指标可被传输到VDI 平台310、虚拟机管理器352或性能监控系统316的任何一个。 When the user session terminates, the virtual machine metrics may be transmitted to the VDI platform 310, a virtual machine manager 352 or any of the performance monitoring system 316. 在其他实施例中,在用户会话期间,虚拟机指标可被传输或流式传输到VDI平台310、虚拟机管理器352或性能监控系统316的任何一个。 In other embodiments, during the user session, the virtual machine metrics may be transmitted or streamed to the VDI platform 310, a virtual machine manager 352 or any of the performance monitoring system 316. 类似地,用户会话信息可以被在虚拟机中执行的控制程序220、VDI客户端320或应用的任何一个所记录。 Similarly, the user session information control program may be executed in a virtual machine 220, VDI client 320, or any of the recorded application. 当用户会话终止时或在用户会话的执行期间,用户会话信息可被传输或流式传输到VDI平台310、虚拟机管理器352或性能监控系统316的任何一个。 When the user terminates the session or during the execution of the user session, user session information may be transmitted or streamed to the VDI platform 310, any of the virtual machine manager 352 or the performance monitoring system 316. 在用户会话和/或虚拟机指标被流式传输或传输到VDI平台310或虚拟机管理器352的实施例中,该信息和指标可以被传输到性能监控系统316,这些信息和指标被最终存储在性能监控系统316并且用于产生用户工作负载简档。 The user session and / or virtual machine metrics be streamed or transferred to Example VDI platform 310 or the virtual machine manager 352, the information and the indicator can be transmitted to the performance monitoring system 316, the information and metrics are finally stored performance monitoring system 316 for generating and user workload profile.

[0113] 图5A所示的是用于给用户或用户会话分配虚拟机的方法500的一个实施例。 It is illustrated in [0113] FIG 5A to a method for a user or user session assigned a virtual machine 500 of the embodiment. VDI 平台310或虚拟桌面代理350接收对虚拟机或虚拟桌面的用户请求(步骤504),接着虚拟桌面代理响应地发出对虚拟机的请求(步骤508)。 VDI platform 310 or virtual desktop broker 350 receives a virtual machine or a virtual desktop user request (step 504), then the Virtual Desktop Agent issues a request for a virtual machine (step 508) responsively. 给发出请求的用户的用户会话分配虚拟机(步骤512),以及虚拟桌面代理350接收关于所分配的虚拟机的信息(步骤516)。 The user requesting the user session is assigned a virtual machine (step 512), and the Virtual Desktop Agent receives information about the allocated virtual machine 350 (step 516). 然后,虚拟桌面代理350将所分配的虚拟机通知性能监控系统316 (步骤520)。 Then, the virtual desktop broker 350 notifies the assigned virtual machine performance monitoring system 316 (step 520).

[0114] 进一步参考图5A,且在一些实施例的更多细节中,VDI平台310或虚拟桌面代理350接收对虚拟机的请求(步骤504)。 [0114] With further reference to Figure 5A, and in some embodiments further details of the embodiment, VDI platform 310 or a virtual desktop proxy 350 receives a request for a virtual machine (step 504). 该请求可以是由用户、用户会话或者用户所访问的客户端计算机或执行用户会话的客户端计算机所发出的。 The request may be a client computer of a user, or a user session or accessed by the user performing a user session sent by the client computer. 在一些实施例中,这个请求可使VDI平台310认证用户并初始化用户会话。 In some embodiments, the request VDI platform 310 can authenticate the user and the user session initialization. 在其他实施例中,用户可以在初始化用户会话后发出对虚拟机的请求。 In other embodiments, a user may request for a virtual machine after initialization user session. 在一些实施例中,该请求可以包括信息诸如:用户所请求的应用;用户标识符;用户名;用户会话标识符;用户所使用以便发出请求的客户端计算机的硬件配置;在用户所使用以便发出请求的客户端计算机上的执行的操作系统的类型或管理程序的类型;首选的CPU配置;或其他这样的信息。 In some embodiments, the request may include information such as: the application requested by the user; the hardware configuration of the client computer used by the user to issue a request;; user identifier; username; user session identifier used by the user to the type of operating system executing on the client or the requesting computer hypervisor type; preferred CPU configuration; or other such information.

[0115] 当收到请求时,VDI平台310或虚拟桌面代理350发出对虚拟机的请求(步骤508)。 [0115] When a request is received, VDI platform 310 or virtual desktop broker 350 issues a request for a virtual machine (step 508). 这个请求可以直接发送到虚拟机池312,或者在一些实施例中可以发送到虚拟机管理器352。 This request may be sent directly to a pool of virtual machines 312, in some embodiments, or may be sent to the virtual machine manager 352. 在一些实施例中,虚拟桌面代理350可包括关于用户、用户会话、最初的用户请求、 用户所访问的客户端计算机的信息,或对虚拟机请求的其他这样的信息。 In some embodiments, the virtual desktop 350 may include a user agent, a user session, the first user request, the information the client computer accessed by the user, or other information such as virtual machine request. 在其他实施例中, 当收到来自虚拟桌面代理350的虚拟机请求时,虚拟机管理器352可向VDI平台310或虚拟桌面代理350查询关于用户所使用的客户端计算机、用户或者用户会话的信息。 In other embodiments, when the agent receives a virtual machine from the virtual desktop 350 the request, the virtual machine manager 352 or 310 may be the VDI platform agent 350 queries the virtual desktop on the client computer used by the user, or a user session of the user information.

[0116] 虚拟机管理器352响应于接收请求,获得信息并给用户会话分配虚拟机(步骤512)。 [0116] Virtual machine manager 352 in response to receiving the request for information and user session assigned to a virtual machine (step 512). 在一些实施例中,虚拟机管理器352首先从性能监控系统316获得下列任何一个:用于发出请求的用户的工作负载简档;或用于发出请求的用户的分类。 In some embodiments, the virtual machine manager 352 first obtains the performance monitoring system 316 from any of the following: means for requesting a user's workload profiles; for classifying a user or requesting. 虚拟机管理器352可通过向性能监控系统316传递用户标识符,例如,用户名或用户ID,来获得这个信息。 Virtual machine manager 352 may be transmitted by the user identifier to the performance monitoring system 316, e.g., user name or user ID, to obtain this information. 进而, 性能监控系统316可以使用用户标识符从工作负载简档存储322检索用户工作负载简档, 并且使用用户标识符从分类系统318检索用户的分类。 Further, the performance monitoring system 316 may use the user identifier from the workload profile storage 322 to retrieve user workload profile using the user identifier and classification from the classification system 318 to retrieve the user. 在进一步的实施例中,虚拟机管理器352可从VDI平台310获得关于用户所使用的客户端计算机的信息或在请求中用户所识别的任何具体配置信息。 In a further embodiment, the virtual machine manager 352 can be obtained from VDI platform 310 information about the client computer used by the user or the user identified in the request any specific configuration information. 使用从性能监控系统316和/或VDI平台310所获得的信息, 虚拟机管理器352可产生和/或配置虚拟机或者选择虚拟机。 Use the information obtained from the 316 and / or VDI internet performance monitoring system 310, virtual machine manager 352 can generate and / or select or configure virtual machines VM. 在虚拟机管理器352配置虚拟机的实施例中,虚拟机管理器352根据所获得的信息配置虚拟机并且向用户的用户会话传输或流式传输该虚拟机。 In an embodiment of the virtual machine manager 352 configured in the virtual machine, the virtual machine manager 352 virtual machine configuration information and transmits the acquired virtual machine to the user or user session transport stream. 在虚拟机管理器352选择虚拟机的实施例中,虚拟机管理器352检索关于可利用的虚拟机的信息、选择能处理用户的工作负载的虚拟机,以及可以向用户的用户会话传输该虚拟机。 352 select the virtual machine in a virtual machine manager embodiments, the virtual machine manager 352 retrieves information about available virtual machine, choose to handle the user's workload virtual machines, and can be user sessions transmitted to a user the virtual machine. 例如,如果工作负载简档指定用户是重度用户,那么虚拟机管理器352可选择能适应重度用户的虚拟机。 For example, if the specified user workload profile is a heavy user, then select the virtual machine manager 352 can accommodate heavy users of the virtual machine. 仍在其他实施例中,虚拟机管理器352可以选择虚拟机并且根据用户的规定配置该虚拟机。 In still other embodiments, the virtual machine manager 352 can select a virtual machine and the virtual machine configured in accordance with a predetermined user. 图5B中所描述的是给用户会话分配虚拟机(步骤512)的进一步的实施例。 A further embodiment is to give the user session is assigned a virtual machine (step 512) of the embodiment described in FIG. 5B.

[0117] 当给用户会话分配了虚拟机时,虚拟机管理器352可将该虚拟机通知虚拟桌面代理350或VDI平台310 (步骤516)。 [0117] When a user session assigned to a virtual machine, the virtual machine manager 352 can notify the virtual machine 350 or virtual desktop VDI platform agent 310 (step 516). 这个通知可包括指示虚拟机已被分配给用户的用户会话的消息。 This notification may include a message indicating that the virtual machine has been assigned to the user's user session. 其他实施例中,该通知可包括用户所分配的虚拟机的标识符。 In other embodiments, the notification may include a user identifier assigned to the virtual machine. 仍在其他实施例中,该通知可包括虚拟机的特征的列表。 In still other embodiments, the notification may include a list of features of the virtual machine. 其他实施例还可包括包含上述任何组合的通知。 Other embodiments may further include combinations comprising any of the above notification.

[0118] 在一些实施例中,方法500还包括将所分配的虚拟机通知性能监控系统316的步骤(步骤520)。 [0118] In some embodiments, the method 500 further comprises the step of allocating virtual machines notifies the performance monitoring system 316 (step 520). 在其他实施例中,方法500可以不包括这个步骤。 In other embodiments, method 500 may not include this step.

[0119] 图5B所示的是用于根据用户的分类或用户工作负载简档给用户分配虚拟机的方法550的一个实施例。 [0119] FIG 5B is shown according to a user or user classification working embodiment of a method of loading a user profile assigned to the virtual machine 550 of the embodiment. 虚拟机管理器352可接收对虚拟机的请求(步骤554)。 Virtual machine manager 352 may receive a request for a virtual machine (step 554). 当收到这个请求时,虚拟机管理器352可为请求虚拟机的用户识别用户的分类或工作负载简档(步骤556),以及虚拟机管理器352可根据用户的分类和/或工作负载简档给用户分配虚拟机(步骤558)。 Upon receiving this request, the virtual machine manager 352 may be a user identification request of the user or the virtual machine classification workload profile (step 556), and a virtual machine manager 352 may be based on the user classification and / or workload profile VM assigned to the user profile (step 558).

[0120] 进一步参考图5B,且在一些实施例的更多细节中,方法550可由虚拟机管理器352 执行。 [0120] With further reference to Figure 5B, and in some embodiments further details of the embodiment, the method 550 may execute a virtual machine manager 352. 在其他实施例中,方法550可由VDI平台310执行。 In other embodiments, the method 550 may be performed VDI platform 310.

[0121] 在一些实施例中,虚拟机管理器352可接收对虚拟机的请求(步骤554)。 [0121] In some embodiments, the virtual machine manager 352 may receive a request for a virtual machine (step 554). 在其他实施例中,虚拟机池可接收对虚拟机的请求。 In other embodiments, the virtual machine pool may receive a request for a virtual machine. 这个请求可以是由用户或用户会话发出的并且可包括用户识别信息,例如,用户标识符。 This request may be initiated by a user or a user session and user identifying information may include, for example, a user identifier. 仍在其他实施例中,该请求可以是由虚拟桌面代理响应于接收来自用户会话的请求而发出的。 In still other embodiments, the request may be made to a Virtual Desktop Agent receives a request from a user session in response issued.

[0122] 当收到对虚拟机的请求时,虚拟机池或虚拟机管理器352可为用户识别用户分类和/或工作负载简档(步骤556)。 [0122] When a request for a virtual machine, the virtual machine or virtual machine pool manager 352 may classify and / or workload profile (step 556) the user to identify the user. 在虚拟机管理器352在请求中收到用户标识符的实施例中,虚拟机管理器352可使用该用户标识符来为用户获得用户分类和/或工作负载简档。 In the virtual machine manager 352 receives the user identifier in the request embodiments, the virtual machine manager 352 can use the user identifier for the user to obtain the user classification and / or workload profile. 在其他实施例中,虚拟机管理器352可直接向VDI平台310或用户会话查询用户的标识符。 In other embodiments, the virtual machine manager 352 can query identifier of the user directly to the VDI platform 310 or user session. 获得用户分类和/或工作负载简档可包括向性能监控系统316、分类系统318或用户工作负载简档存储322查询与具体用户相关联的信息。 Obtain user classification and / or workload profile information may include performance monitoring system 316, the classification system 318 or user workload profile storage 322 with specific queries associated with a user. 通过向分类系统318、性能监控系统316 和/或用户工作负载简档存储322的任何一个传递用户标识符,这些实体可以获得与对应于用户标识符的用户相关联的信息,例如记录。 Through 318, the performance monitoring system 316 and / or any transmitting a user identifier of the user workload profile storage 322 to the classification system, these entities may obtain information associated with a user corresponding to the user identifier, such as recording. 例如,性能监控系统316可接收用户的用户标识符,并且可以获得针对该用户标识符所存储的工作负载简档和/或针对该用户标识符所存储的用户分类。 For example, the performance monitoring system 316 may receive the user identifier of the user, and the user can obtain the identifier stored workload profiles and / or classification for the user identifier for the user is stored. 针对标识符存储信息可包括使用用户标识符来标注或标记数据或者将用户标识符和其他信息一起存储在同一记录中或者作为元数据存储。 Information may include an identifier for storing a user identifier used to label or tag to store data or other information with the user identifier and the same record or stored as metadata. 所获得的工作负载简档和/或用户分类接着可以被发送回到虚拟机管理器352或虚拟机池。 Obtained workload profiles and / or user category can then be sent back to the virtual machine manager 352 or virtual machine pool. 在其他实施例中, 虚拟机管理器352或虚拟机池可以检索工作负载简档和/或用户分类。 In other embodiments, the virtual machine or virtual machine manager 352 can retrieve the pool workload profile and / or user category.

[0123] 当为用户识别出工作负载简档和/或用户分类时,虚拟机管理器352可给用户分配虚拟机(步骤558)。 [0123] When the user is identified workload profile and / or user category, virtual machine manager 352 may allocate a virtual machine (step 558) to the user. 给用户分配虚拟机可包括给用户的用户会话分配虚拟机。 Assigned to the user virtual machine may include a user session assigned to the user's virtual machine. 在一些实施例中,虚拟机管理器352可给发出请求的用户分配虚拟机,在其他实施例中VDI平台310 可给用户分配虚拟机。 In some embodiments, the virtual machine manager 352 can assign the user to issue a requested virtual machine, in other embodiments the VDI platform 310 may be assigned to the user virtual machine. 在这些实施例中,虚拟机管理器352可将虚拟机信息转发到VDI平台310,接着VDI平台310可将该虚拟机信息传输到用户的用户会话。 In these embodiments, the virtual machine manager 352 may forward the information to the virtual machine platform 310 VDI, VDI platform 310 then the virtual machine information may be transmitted to the user's user session. 给用户分配虚拟机可包括产生和配置新的虚拟机,并接着向用户的用户会话传输该虚拟机。 Assigned to the user may include generating a virtual machine and configure a new virtual machine, the virtual machine and then transmitted to the user's user session. 在其他实施例中给用户分配虚拟机可包括从现有的虚拟机的池中选择虚拟机,并接着向用户的用户会话传输所选择的虚拟机。 In other embodiments, the user is assigned to a virtual machine may include selecting a virtual machine from a pool of existing virtual machines, and then transmitted to the user session of the user selected virtual machine. 选择或产生和/或配置虚拟机可根据用户、计算设备或虚拟机标准的任何集合而实现。 Selected or generated / may be any computing device or set of virtual machines in accordance with the standard or the user and virtual machine configuration is achieved.

[0124] 在一些实施例中,给用户分配虚拟机可以根据用户的分类而实现。 [0124] In some embodiments, the virtual machine assigned to the user can be achieved in accordance with the user classification. 在这些实施例中,虚拟机管理器352可使用所获得的用户类别来确定将哪个虚拟机分配给用户。 In these embodiments, the virtual machine manager 352 may determine which virtual machine to assign to the user using the user category acquired. 例如,如果用户是轻度用户,适合轻度用户的虚拟机可以被分配给用户或用户的用户会话。 For example, if the user is a light user, a virtual machine for mild user may be assigned to a user or user session.

[0125] 在其他实施例中,给用户分配虚拟机可以根据对用户的工作负载简档的分析而实现。 [0125] In other embodiments, the virtual machine assigned to the user can be achieved based on an analysis of the workload of the user profile. 当获得用户的工作负载简档时,虚拟机管理器352可分析工作负载简档来确定用户是否是轻度、中度或重度用户。 When obtaining the user's workload profile, a virtual machine manager 352 can analyze workload profile to determine whether the user is mild, moderate or heavy users. 当用户的分类被确定时,虚拟机管理器352可使用所确定的分类来给用户分配合适的虚拟机。 When the user's classification is determined, the virtual machine manager 352 may be assigned to the appropriate virtual machine user using the determined classification.

[0126] 图6所示的是用于分类用户并更新工作负载简档的方法600的一个实施例。 The method for classification and the user workload profile updates 600 a illustrated embodiment [0126] FIG. 性能监控系统316可接收用户会话终止的通知(步骤604)并且响应地记录用户会话信息(步骤608)和记录虚拟机指标(步骤612)。 Notification (step 604) and in response to the user session information recorded (step 608) and records the virtual machine metrics (step 612) the performance monitoring system 316 may receive a user's session is terminated. 然后,性能监控系统316可使用用户会话信息和虚拟机指标更新工作负载简档(步骤616),并使用工作负载简档对用户进行分类(步骤620)。 Then, the performance monitoring system 316 can use the user session information and virtual machine metrics update workload profile (step 616), and use the workload profile for the user to classify (step 620).

[0127] 进一步参考图6,且在一些实施例的更多细节中,性能监控系统316可可接收用户会话终止的通知(步骤604)。 [0127] With further reference to FIG. 6, and in some embodiments further details of the embodiment, the performance monitoring system 316 receives a notification of cocoa (step 604) to terminate the user's session. 在一些实施例中,性能监控系统316可从虚拟机管理器352 接收该通知,而在其他实施例中,性能监控系统316可从VDI平台310接收该通知。 In some embodiments, the performance monitoring system 316 may receive the notification from the virtual machine manager 352, in other embodiments, the performance monitoring system 316 may receive the notification from the VDI platform 310. 在一些实施例中,该通知可包括用户会话标识符、用户标识符和/或虚拟机标识符。 In some embodiments, the user notification may include a session identifier, a user identifier and / or virtual machine identifier. 性能监控系统316可使用这些标识符来识别、存储以及之后检索与该用户相关联的信息,例如,用户标识符和/或虚拟机指标。 Performance monitoring system 316 may use the identifier to identify, store and later retrieve information associated with the user, e.g., user identifier and / or virtual machine metrics. 在一些实施例中,在性能监控系统316中执行的应用可接收该通知。 In some embodiments, an application executing in the performance monitoring system 316 may receive the notification. 例如,在一个实施例中,会话监控器332从性能监控系统316或者直接从VDI平台310或虚拟机管理器352接收用户会话终止的通知。 For example, in one embodiment, session monitor the performance monitoring system 332 or 316 receives from the user session VDI platform 310 or virtual machine manager 352 directly from the termination notification. 仍在其他实施例中,当直接终止性能监控系统316的会话监控器332时,可以由用户会话发送该通知。 In still other embodiments, when a session is terminated directly the performance monitoring system 316 to monitor 332, the notification may be sent by a user session.

[0128] 会话监控器332响应于接收用户会话终止的通知,接着为所终止的会话记录用户会话信息(步骤608)。 [0128] session monitor 332 in response to receiving a user session termination notification, the user session information is then recorded (step 608) the session is terminated. 记录用户会话信息可包括从下列来源的任何一个获得用户会话信息:虚拟机管理器352 ;VDI平台310 ;VDI客户端320 ;或从所终止的用户会话的用户所使用的客户端计算机上的存储仓库。 Recording user session information may include obtaining the user session information from any of the following sources: virtual machine manager 352; VDI internet 310; VDI client 320; memory or on the client computer from a user to terminate a user session to be used warehouse. 在一些实施例中,在用户会话的执行期间,用户会话信息可被流式传输到性能监控系统316。 In some embodiments, during execution of the user session, the user session information can be streamed to the performance monitoring system 316. 在这些实施例中,记录用户会话信息可包括从临时存储单元检索用户会话信息并且将其存储在会话记录存储330中或者停止(close out)会话记录存储330中的某条记录。 In such embodiments, recorded user session information may include a temporary storage unit retrieves the session information from the user and stored in the session record 330 is stored in a record or stop (close out) memory 330 in the session record. 在许多实施例中,记录用户会话信息可包括将用户会话信息与识别标记一起存储在用户会话记录存储330中,所述识别标记指示用户会话信息来自终止通知中所识别的用户的用户会话。 In many embodiments, the recording session information may include the user stored in the user session record 330 stores user session information together with the identification mark, the identification mark indicating that the user session information from a user to terminate a user session identified in the notification. 尽管在一个实施例中会话监控器332记录用户会话信息, 然而在其他实施例中性能监控系统316或在性能监控系统316的上下文中执行的另一个应用记录用户会话信息。 Although this embodiment recorded session monitor 332] In one embodiment of the user session information, however, another application session information recorded user performance monitoring system 316, or performed in the context of the performance monitoring system 316 in other embodiments.

[0129] 接着,性能监控系统316可记录虚拟机指标(步骤612)。 [0129] Next, the performance monitoring system 316 may record the virtual machine metrics (step 612). 虚拟机指标是用于在用户会话(例如,所终止的用户会话)期间用户所访问的虚拟机的指标或性能数据。 Virtual machine metrics for a user session (e.g., session terminated by user) metrics accessed by the user during virtual machine or performance data. 这些指标可包括此处所描述的任何机器指标或性能数据。 These indicators may include any machine or performance metrics data described herein. 在一些实施例中,性能监控系统316或在性能监控系统316的上下文中执行的任何应用可记录虚拟机指标。 In some embodiments, any application or perform the performance monitoring system 316 in the context of the performance monitoring system 316 may record the virtual machine metrics. 在其他实施例中,虚拟机性能监控器326可以存储虚拟机指标。 In other embodiments, the virtual machine performance monitor 326 may store a virtual machine metrics. 存储虚拟机指标可包括从下列来源的任何一个获得虚拟机指标:虚拟机管理器352 ;VDI平台310 ;VDI客户端320 ;或从所终止的用户会话的用户所使用的客户端计算机上的存储仓库。 Storage virtual machine metrics may include one obtained virtual machine metrics from any of the following sources: virtual machine manager 352; VDI internet 310; VDI client 320; or stored from a client computer user to terminate a user session to be used in the warehouse. 在一些实施例中,在用户会话的执行期间,虚拟机指标可被流式传输到性能监控系统316。 In some embodiments, during execution of the user session, the virtual machine metrics can be streamed to the performance monitoring system 316. 在这些实施例中,记录虚拟机指标可包括从临时存储单元检索虚拟机指标并且将其存储在虚拟机指标存储324中或者停止虚拟机指标存储324中的某条记录。 In these embodiments, indicators may include the virtual machine records retrieved metric from the virtual machine and the temporary storage unit stored in the virtual machine 324 or stopping the index to a record in the virtual machine metrics storage 324 that stores. 在许多实施例中,记录虚拟机指标可包括将虚拟机指标与识别标记一起存储在虚拟机指标存储324中,所述识别标记指示虚拟机指标是在终止通知中所识别的用户的用户会话期间所产生的。 During a user session in many embodiments, the indicators may include the virtual machine records stored in the index store a virtual machine 324 with virtual machine metrics together with an identification mark, said identification flag indicates that the virtual machine metrics user is identified in the notice of termination of produced. 用户和/或用户会话还可对应终止通知中所识别的虚拟机,从而在用户会话期间该用户访问该虚拟机。 User and / or user session termination notification may also correspond to the identified virtual machines, so that the user during the user session to access the virtual machine.

[0130] 在一些实施例中,性能监控系统316可使用所记录的用户会话信息和虚拟机指标来对所终止的用户会话的用户更新用户工作负载简档(步骤616)。 [0130] In some embodiments, the performance monitoring system 316 may use the user session information and virtual machine metrics recorded to update the user workload profile (step 616) to terminate a user session of the user. 更新用户工作负载简档可包括存储在用户会话期间所产生的虚拟机指标并且将那些虚拟机指标映射到用户会话的用户。 Update the user workload profile may include a virtual machine metrics stored during a user session generated and maps those virtual machine metrics to user user session. 将虚拟机指标映射到用户可包括标注或以其他方式将用户标识符与虚拟机指标相关联。 Mapping the virtual machine metrics to the user can include labels or otherwise the user identifier associated with the virtual machine metrics. 在其他实施例中,将虚拟机指标映射到用户可包括将虚拟机指标与用户会话记录相关联。 In other embodiments, map the virtual machine to the user may include metrics associated with a user session virtual machine metrics recorded. 在一些实施例中,性能监控系统316使用被包含在终止通知中的用户标识符来从用户工作负载简档存储322中获得用户工作负载简档。 In some embodiments, the performance monitoring system 316 is contained in the user termination notification identifier obtained from the user workload profile of user workload profile storage 322. 当获得对应于所终止的用户会话的用户的用户工作负载简档时,性能监控系统316接着可使用所记录的虚拟机指标更新所获得的用户工作负载简档。 When a user is working is obtained corresponding to the user to terminate a user session of the user workload profile, the performance monitoring system 316 may then be recorded using the updated virtual machine metrics obtained load profile. 在一些实施例中,性能监控系统316接着可以将所更新的用户工作负载简档存储在用户工作负载简档存储322中。 In some embodiments, 316 may then be updated user workload profile storage performance monitoring system in the user workload profile storage 322. 在其他实施例中,性能监控系统316可以在分类系统318对用户分类之后存储所更新的用户工作负载简档。 In other embodiments, the performance monitoring system 316 may store classification system 318 pairs of work after the updated user profile in the user classification load. 在一个实施例中,更新用户工作负载简档的过程可以由分类系统318执行。 In one embodiment, the update process user workload profiles may be performed by classification system 318.

[0131] 在性能监控系统316的上下文中执行的分类系统318可使用所更新的工作负载简档来对用户进行分类(步骤620)。 [0131] performed in the context of the performance monitoring system 316 of classification system 318 may be classified (step 620) using the updated user workload profile. 在一些实施例中,一旦用户工作负载简档被更新,分类系统318将接收用户可以被分类的通知。 In some embodiments, once the user workload profile is updated, classification system 318 may inform the user receives classified. 用户可能已经被分类,因而,对用户进行分类可包括使用反映所记录的虚拟机指标的新的分类来更新用户的分类。 Users may have been classified, and therefore, the user classification new classification may include the use of virtual machine metrics reflect the recorded user to update classification. 用户的分类可以是表示用户会话期间用户所使用的资源数量的任何值。 Users can classify any value is the number of users, resources used during the session. 在一些实施例中,这些值可以是轻度、中度和重度用户,其中轻度用户使用非常少的资源而重度用户使用相当大量的资源。 In some embodiments, these values ​​may be mild, moderate and severe user, wherein the user lightly with very little resources heavy users a considerable amount of resources. 资源可包括计算周期,内存使用量和用户访问的任何其他计算资源。 Periodic resources may include calculating, computing resources to any other memory usage and user access. 可基于管理员指定的一组阀值,或者根据历史数据经验地确定的一组阀值来做出如用户是否是轻度、中度或重度用户的确定。 May be based on a set threshold value specified by the administrator, or a set threshold is determined empirically based on historical data to determine if the user is made as mild, moderate or heavy users. 对用户进行分类可包括查看所终止的用户会话的用户的工作负载简档、给用户指定分类以及将该分类存储在存储仓库中。 The user classification may include a user to view the terminated user session workload profiles, the user specifies the classification and the classification is stored in a storage warehouse.

[0132] 尽管已经参照附图描述和示意了一些示例实施例,应该理解这些实施例仅是说明性的而不限于此处所描述的方法和系统。 [0132] While there has been described and the drawings illustrate some exemplary embodiments with reference to embodiments, it should be understood that these embodiments are illustrative only and not limited to the methods and systems described herein. 另外地,可在硬件、可编程设备、固件、软件或上述组合中实现此处描述的方法和系统或它们的部分特征。 Additionally, the method and system described herein or portions thereof in hardware, programmable devices, firmware, software, or combination thereof. 此处描述的方法和系统或此处描述的方法和系统的一部分也可以在诸如磁介质(例如,硬驱、软驱)、光介质(光盘,数字通用光盘)或半导体存储介质(易失的和非易失的)的处理器可读的存储介质或机器可读的介质中实现。 The method described herein and a portion of the system or the methods and systems described herein may be and magnetic media, such as (e.g., hard drive, floppy drive), optical media (compact disc, digital versatile disc) or a semiconductor storage medium (volatile the processor implemented in non-volatile) storage medium readable or machine-readable medium.

Claims (22)

1. 用于根据用户分类分配虚拟机的方法,其中根据历史的第一用户会话信息和虚拟机性能指标对用户分类,所述方法包括: 由在计算机器上执行的会话监控器接收第一用户会话终止的通知,第一用户会话访问第一虚拟机; 由会话监控器响应于第一用户会话的终止记录第一用户会话信息; 从虚拟机性能监控器获得用于第一虚拟机的第一虚拟机性能指标,其中,所述第一虚拟机性能指标表示所述第一虚拟机施加在被选择用于执行该第一虚拟机的机器上的负载; 由性能监控器使用第一用户会话信息和第一虚拟机性能指标来更新第一用户工作负载简档; 根据第一用户工作负载简档对对应于第一用户会话的第一用户进行分类; 由虚拟桌面架构从第一用户接收对虚拟机的请求;以及响应于接收所述请求,根据第一用户的分类给第一用户分配虚拟机。 1. A method for a virtual machine in accordance with a user classification assigned, wherein the first user session information and performance history of the virtual machine to the user classification, the method comprising: receiving a first user by the session monitor executing on a computing machine session termination notification, the first virtual machine accesses the first user session; by the session monitoring response to the first user terminates the recording session a first session information user; obtaining a first virtual machine from the virtual machine monitor the performance of a first virtual machine performance index, wherein the first virtual machine performance index indicates the first virtual machine is applied to the selected first virtual machine for executing the machine load; session information by the user using the first performance monitor first virtual machine and performance metrics to update the first user workload profile; a first user session corresponding to the first user are classified according to a first user workload profile; receiving from the first user by the virtual virtual desktop infrastructure requesting machine; and in response to receiving the request, according to the first user to the first user classification assigned virtual machine.
2. 权利要求1的方法,其中接收通知还包括由在虚拟桌面架构之外执行的会话监控器接收。 The method of claim 1, wherein the receiving further comprises receiving a notification by the session monitor executing outside of the virtual desktop infrastructure.
3. 权利要求1的方法,其中分类还包括根据第一用户工作负载简档将第一用户分类为重度用户、中度用户和轻度用户中的一个。 The method of claim 1, wherein the classification further comprises a first user workload profile to a user of the first user classification severe, moderate and mild user in the user.
4. 权利要求1的方法,其中更新第一用户工作负载简档还包括将所记录的第一用户会话信息映射到所获得的第一虚拟机性能指标上。 The method of claim 1, wherein updating the first user workload profiles further comprises a first user session is recorded on the first information mapped to the virtual machine performance obtained.
5. 权利要求1的方法,还包括将第一用户的分类存储在存储仓库中。 The method of claim 1, further comprising a classification of the first user in the storage warehouse.
6. 权利要求1的方法,其中分类还包括由在虚拟桌面架构之外的计算机器上执行的分类模块分类。 6. The method of claim 1, wherein the classification comprises further executing on a computer in the virtual desktop infrastructure outside the classification of the classification module.
7. 权利要求1的方法,还包括: 接收第二用户会话终止的通知,所述第二用户会话访问第二虚拟机; 记录第二用户会话信息; 获得用于第二虚拟机的第二虚拟机性能指标;以及使用第二用户会话信息和第二虚拟机性能指标来更新第二用户工作负载简档。 The method of claim 1, further comprising: receiving a second user session termination notification, to access the second user session second virtual machine; recording second user session information; obtaining a second virtual machine to a second virtual machine performance indicators; and using a second user session information and the second virtual machine performance metrics to update the second user workload profile.
8. 权利要求7的方法,还包括根据第二用户工作负载简档对对应于第二用户会话的第二用户进行分类。 The method of claim 7, further comprising a second user session corresponding to the second user classified according to a second user workload profile.
9. 权利要求1的方法,其中给第一用户分配虚拟机还包括由虚拟桌面架构从虚拟机管理器请求虚拟机,所述虚拟机管理器根据第一用户的分类分配虚拟机。 9. The method of claim 1, wherein the user is assigned to the first virtual machine further comprises a request from a virtual machine from the virtual machine manager virtual desktop infrastructure, the virtual machine manager virtual machine according to the classification assigned to the first user.
10. 权利要求1的方法,其中分配虚拟机还包括根据第一用户的分类配置虚拟机。 10. The method of claim 1, wherein the allocating further comprises a virtual machine configuration according to a first virtual machine user classification.
11. 权利要求1的方法,其中分配虚拟机还包括根据第一用户的分类选择虚拟机。 11. The method of claim 1, wherein allocating the virtual machine further comprises selecting the first virtual machine according to the user's classification.
12. 用于根据用户的分类分配虚拟机的系统,其中根据历史的第一用户会话信息和虚拟机性能指标对用户分类,所述系统包括: 在计算机器上执行的会话监控器,用于: 接收第一用户会话终止的通知,第一用户会话访问第一虚拟机, 响应于第一用户会话的终止来记录第一用户会话信息,以及从虚拟机性能监控器获得用于第一虚拟机的第一虚拟机性能指标,其中,所述第一虚拟机性能指标表示所述第一虚拟机施加在被选择用于执行该第一虚拟机的机器上的负载; 性能监控器: 使用第一用户会话信息和第一虚拟机性能指标来更新第一用户工作负载简档, 其中根据第一用户工作负载简档对对应于第一用户会话的第一用户进行分类;以及在计算机器上执行的虚拟桌面架构,用于: 从第一用户接收对虚拟机的请求,以及响应于接收所述请求,根据第一用 12. A virtual machine system according to the classification assigned users, wherein the first user session information and performance history of the virtual machine to the user classification, the system comprising: a session monitor executing on a computing machine, for: receiving a first user session termination notification, the first virtual machine accesses the first user session, in response to a termination of the first session of the user to record a first user session information, and access to a virtual machine from a performance monitor for a first virtual machine first virtual machine performance index, wherein the first virtual machine performance index indicates the first virtual machine is applied to the selected first virtual machine for executing the machine load; performance monitor: a first user using session information and the first virtual machine performance metrics to update the first user workload profile, wherein the first user session corresponding to the first user are classified according to a first user workload profile; and a virtual computing machine executing on desktop infrastructure for: receiving a request for a virtual machine from the first user, and in response to receiving the request, in accordance with a first 的分类来给第一用户分配虚拟机。 Free to allocate virtual machine to the first user.
13. 权利要求12的系统,其中会话监控器在虚拟桌面架构之外执行。 13. The system of claim 12, wherein the session monitor is performed outside of a virtual desktop infrastructure.
14. 权利要求12的系统,其中根据第一用户工作负载简档,第一用户被分类为重度用户、中度用户和轻度用户中的一个。 14. The system of claim 12, wherein the first user workload profile, a first user a user is classified as severe, moderate and mild user in the user.
15. 权利要求12的系统,其中性能监控器还将所记录的第一用户会话信息映射到所获得的第一虚拟机性能指标上。 15. The system of claim 12, wherein the first user session performance monitor also recorded information is mapped to a first virtual machine performance obtained.
16. 权利要求12的系统,还包括用于存储第一用户分类的存储仓库。 16. The system of claim 12, further comprising a repository for storing a first user classification.
17. 权利要求12的系统,还包括在虚拟桌面架构之外的计算设备上执行的分类模块, 其中分类模块对第一用户进行分类。 17. The system of claim 12, further comprising a classification module executing on a computing device other than the virtual desktop infrastructure, wherein the classification module classifies the first user.
18. 权利要求12的系统,其中, 性能监控器接收第二用户会话终止的通知,第二用户会话访问第二虚拟机, 记录第二用户会话信息,和获得用于第二虚拟机的第二虚拟机性能指标;以及性能监控器使用第二用户会话信息和第二虚拟机性能指标来更新第二用户工作负载简档。 18. The system of claim 12, wherein the performance monitor notifies the second user receives a session termination, the second user session access to the second virtual machine, the second user session information is recorded, and obtaining a second virtual machine to a second virtual machine performance; and performance monitor using the second user session information and the second virtual machine performance metrics to update the second user workload profile.
19. 权利要求18的系统,还包括根据第二用户工作负载简档对对应于第二用户会话的第二用户进行分类的分类模块。 19. The system of claim 18, further comprising a second user of the second user session corresponding to the classification module according to the second user classified workload profile.
20. 权利要求12的系统,其中虚拟桌面架构通过从虚拟机管理器请求虚拟机来给第一用户分配虚拟机,以及虚拟机管理器根据第一用户的分类给第一用户分配虚拟机。 20. The system of claim 12, wherein the virtual desktop infrastructure by requesting a virtual machine from the virtual machine to a virtual machine manager assigned to the first user, and a virtual machine manager virtual machine assigned to the first user according to the first user classification.
21. 权利要求20的系统,其中虚拟机管理器通过根据第一用户的分类配置虚拟机来给第一用户分配虚拟机。 21. The system of claim 20, wherein the virtual machine manager via a first virtual machine configuration for virtual machine user classification assigned to the first user.
22. 权利要求20的系统,其中虚拟机管理器通过根据第一用户的分类选择虚拟机来给第一用户分配虚拟机。 22. The system of claim 20, wherein the virtual machine manager by selecting according to a first virtual machine to a virtual machine user classification assigned to the first user.
CN 201110148568 2010-10-12 2011-06-01 Allocating virtual machines according to user-specific virtual machine metrics CN102446121B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/902,542 US8856783B2 (en) 2010-10-12 2010-10-12 Allocating virtual machines according to user-specific virtual machine metrics
US12/902542 2010-10-12

Publications (2)

Publication Number Publication Date
CN102446121A CN102446121A (en) 2012-05-09
CN102446121B true CN102446121B (en) 2015-04-15

Family

ID=44503493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110148568 CN102446121B (en) 2010-10-12 2011-06-01 Allocating virtual machines according to user-specific virtual machine metrics

Country Status (4)

Country Link
US (3) US8856783B2 (en)
EP (1) EP2442226B1 (en)
CN (1) CN102446121B (en)
HK (1) HK1168162A1 (en)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021046B2 (en) * 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US8972980B2 (en) 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US9244705B1 (en) * 2010-05-28 2016-01-26 Bromium, Inc. Intelligent micro-virtual machine scheduling
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US8364820B2 (en) * 2010-06-01 2013-01-29 Cisco Technology Inc. Data center resource usage and cost determination
US20150106813A1 (en) * 2010-10-21 2015-04-16 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US9729464B1 (en) 2010-06-23 2017-08-08 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US8631406B2 (en) * 2010-06-30 2014-01-14 Sap Ag Distributed cloud computing architecture
US8707083B2 (en) * 2010-12-03 2014-04-22 Lsi Corporation Virtualized cluster communication system
US20120185527A1 (en) * 2010-12-22 2012-07-19 Aventura Hq, Inc. Distributed virtual desktop architecture
US8621081B2 (en) * 2010-12-29 2013-12-31 Verizon Patent And Licensing Inc. Hypervisor controlled user device that enables available user device resources to be used for cloud computing
US10003672B2 (en) * 2011-02-09 2018-06-19 Cisco Technology, Inc. Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures
FR2972548B1 (en) * 2011-03-08 2013-07-12 Thales Sa Device for improving fault tolerance of a processor
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
US8806483B2 (en) * 2011-04-13 2014-08-12 International Business Machines Corporation Determining starting values for virtual machine attributes in a networked computing environment
KR101228424B1 (en) * 2011-05-18 2013-01-31 백인호 System for virtual desktop file access service used in mobile device and method for the same
US9052953B2 (en) * 2011-05-23 2015-06-09 Citrix Systems, Inc. Autonomous computer session capacity estimation
US9251481B2 (en) * 2011-06-13 2016-02-02 Accenture Global Services Limited Distributed metering and monitoring system
ITMI20111209A1 (en) * 2011-06-30 2012-12-31 Ibm user-level monitoring in a cloud computing environment
US8910128B2 (en) * 2011-07-19 2014-12-09 Salesforce.Com, Inc. Methods and apparatus for application performance and capacity analysis
US9590820B1 (en) * 2011-09-02 2017-03-07 Juniper Networks, Inc. Methods and apparatus for improving load balancing in overlay networks
US20130067469A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Load Balancing By Endpoints
US8701174B1 (en) * 2011-09-27 2014-04-15 Emc Corporation Controlling access to a protected resource using a virtual desktop and ongoing authentication
US8694786B2 (en) * 2011-10-04 2014-04-08 International Business Machines Corporation Virtual machine images encryption using trusted computing group sealing
US20130093776A1 (en) * 2011-10-14 2013-04-18 Microsoft Corporation Delivering a Single End User Experience to a Client from Multiple Servers
US9235856B2 (en) * 2011-11-10 2016-01-12 Verizon Patent And Licensing Inc. Providing overlay networks via elastic cloud networking
US9311160B2 (en) 2011-11-10 2016-04-12 Verizon Patent And Licensing Inc. Elastic cloud networking
US9218212B2 (en) * 2011-11-11 2015-12-22 International Business Machines Corporation Pairing physical devices to virtual devices to create an immersive environment
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
CA2764283A1 (en) 2012-01-16 2013-07-16 Giovanni J. Morelli Mobile device control application for improved security and diagnostics
CA2764362A1 (en) * 2012-01-16 2013-07-16 Giovanni J. Morelli Rdp session monitor/control system and application
CA2764354A1 (en) 2012-01-16 2013-07-16 Giovanni J. Morelli Host-emulator bridge system and method
US20130191882A1 (en) 2012-01-19 2013-07-25 Sap Ag Access control of remote communication interfaces based on system-specific keys
US20150029983A1 (en) * 2012-04-11 2015-01-29 Hitachi Kokusai Electric Inc. Radio system, radio base station, and management apparatus
US9251181B2 (en) 2012-06-18 2016-02-02 International Business Machines Corporation Dynamic map template discovery and map creation
TWI470550B (en) * 2012-06-26 2015-01-21 Wistron Corp Communication method of virtual machines and server-end system
US9547515B2 (en) * 2012-07-25 2017-01-17 Hewlett-Packard Development Company, L.P. Convert a gesture
US20140047114A1 (en) * 2012-08-13 2014-02-13 Cisco Technology, Inc. Virtual desktop policy control
US9298512B2 (en) 2012-08-25 2016-03-29 Vmware, Inc. Client placement in a computer network system using dynamic weight assignments on resource utilization metrics
US10225164B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing a cloud computing environment
CN108287750A (en) * 2012-09-12 2018-07-17 格林伊登美国控股有限责任公司 System and method for dynamic configuration of contact centers via templates
US9912812B2 (en) 2012-11-21 2018-03-06 Genesys Telecommunications Laboratories, Inc. Graphical user interface for configuring contact center routing strategies
US9912813B2 (en) 2012-11-21 2018-03-06 Genesys Telecommunications Laboratories, Inc. Graphical user interface with contact center performance visualizer
US9336030B1 (en) * 2012-09-18 2016-05-10 Amazon Technologies, Inc. Placement and tuning of virtual machines
US9262188B1 (en) * 2012-09-19 2016-02-16 Emc Corporation Virtual asset management in data center
US9098617B1 (en) * 2012-09-27 2015-08-04 Emc Corporation Data analytics lifecycle automation
US9729614B2 (en) * 2012-10-01 2017-08-08 Datacastle Corporation Resilient data node for improving distributed data management and bandwidth utilization
US9342353B2 (en) * 2012-10-06 2016-05-17 International Business Machines Corporation Techniques for implementing information services with tenant specific service level agreements
US20140108647A1 (en) * 2012-10-11 2014-04-17 Brocade Communications Systems, Inc. User Feedback in Network and Server Monitoring Environments
US9575618B2 (en) * 2012-10-19 2017-02-21 Google Inc. Multi-user process management
US9104463B2 (en) * 2012-11-07 2015-08-11 International Business Machines Corporation Automated and optimal deactivation of service to enable effective resource reusability
US9262493B1 (en) 2012-12-27 2016-02-16 Emc Corporation Data analytics lifecycle processes
EP2939131A4 (en) * 2012-12-27 2016-08-17 Intel Corp Reservation and execution image writing of native computing devices
US9569233B2 (en) 2012-12-31 2017-02-14 F5 Networks, Inc. Elastic offload of prebuilt traffic management system component virtual machines
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9002982B2 (en) * 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US9104456B2 (en) 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
US9503527B1 (en) * 2013-03-15 2016-11-22 Cisco Technology, Inc. Personalized phone registration based on virtual desktop infrastructure
US8793688B1 (en) * 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
EP2979181A4 (en) 2013-03-28 2016-08-24 Sphere 3D Inc Systems and methods for providing an emulator
WO2014188492A1 (en) * 2013-05-20 2014-11-27 三菱電機株式会社 Monitoring control device
US9384115B2 (en) 2013-05-21 2016-07-05 Amazon Technologies, Inc. Determining and monitoring performance capabilities of a computer resource service
US20140359127A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Zero touch deployment of private cloud infrastructure
WO2014204453A1 (en) * 2013-06-19 2014-12-24 Empire Technology Development, Llc Processor-optimized library loading for virtual machines
US9684866B1 (en) 2013-06-21 2017-06-20 EMC IP Holding Company LLC Data analytics computing resource provisioning based on computed cost and time parameters for proposed computing resource configurations
US20150006730A1 (en) * 2013-06-27 2015-01-01 Sap Ag Enabling multi-tenant virtual servers in a cloud system
US20160092248A1 (en) * 2013-06-28 2016-03-31 Hewlett-Packard Development Company, L.P. Hook framework
US9811435B2 (en) 2013-09-03 2017-11-07 Cisco Technology, Inc. System for virtual machine risk monitoring
US9235630B1 (en) 2013-09-25 2016-01-12 Emc Corporation Dataset discovery in data analytics
US9495195B2 (en) * 2013-10-04 2016-11-15 Hitachi, Ltd. Resource migration between virtual containers based on utilization rate and performance degradation
US9912570B2 (en) 2013-10-25 2018-03-06 Brocade Communications Systems LLC Dynamic cloning of application infrastructures
US20150130815A1 (en) * 2013-11-11 2015-05-14 Amazon Technologies, Inc. Multiple parallel graphics processing units
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9805479B2 (en) 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
US9596280B2 (en) 2013-11-11 2017-03-14 Amazon Technologies, Inc. Multiple stream content presentation
US9578074B2 (en) 2013-11-11 2017-02-21 Amazon Technologies, Inc. Adaptive content transmission
US9405572B2 (en) * 2014-04-07 2016-08-02 International Business Machines Corporation Optimized resource allocation and management in a virtualized computing environment
US9280376B2 (en) * 2014-05-13 2016-03-08 Dell Products, Lp System and method for resizing a virtual desktop infrastructure using virtual desktop infrastructure monitoring tools
KR101613130B1 (en) * 2014-08-08 2016-04-18 숭실대학교산학협력단 Multi smartphone and control method thereof
US10055240B2 (en) * 2014-09-23 2018-08-21 At&T Intellectual Property I, L.P. Service creation and management
US9766917B2 (en) * 2014-10-29 2017-09-19 Red Hat Israel, Ltd. Limited virtual device polling based on virtual CPU pre-emption
US9411628B2 (en) * 2014-11-13 2016-08-09 Microsoft Technology Licensing, Llc Virtual machine cluster backup in a multi-node environment
WO2016080953A1 (en) * 2014-11-17 2016-05-26 Hitachi, Ltd. Method and apparatus for data cache in converged system
US9430269B1 (en) 2015-02-09 2016-08-30 International Business Machines Corporation Feedback analysis for virtual machines manager scheduling
US9870260B2 (en) 2015-03-20 2018-01-16 International Business Machines Corporation Managing a set of assets for a user in a shared pool of configurable computing resources
US9699205B2 (en) 2015-08-31 2017-07-04 Splunk Inc. Network security system
US10055241B1 (en) 2015-09-04 2018-08-21 Cisco Technology, Inc. Virtual machine aware fibre channel
US10079799B2 (en) * 2015-10-14 2018-09-18 Cisco Technology, Inc. Using domain name server queries for managing access control lists
US9678785B1 (en) 2015-11-30 2017-06-13 International Business Machines Corporation Virtual machine resource allocation based on user feedback
CN106020936A (en) * 2016-06-07 2016-10-12 深圳证券通信有限公司 Virtual machine dispatching method and device for financial cloud platform on basis of operating loads
US10382456B2 (en) 2016-09-19 2019-08-13 Citrix Systems, Inc. Remote computing system providing malicious file detection and mitigation features for virtual machines
CN106815060A (en) * 2017-01-19 2017-06-09 携程旅游网络技术(上海)有限公司 Virtual machine allocation method and system
US10334030B2 (en) * 2017-03-31 2019-06-25 A10 Networks, Inc. Load balancing between computing clouds
AU2018200022B2 (en) * 2017-05-05 2019-04-18 Servicenow, Inc. Software asset management
US20180321927A1 (en) * 2017-05-05 2018-11-08 Servicenow, Inc. Software asset management
US20190245929A1 (en) * 2018-02-06 2019-08-08 Citrix Systems, Inc. Computing system providing cloud-based user profile management for virtual sessions and related methods
US10389550B1 (en) 2018-04-10 2019-08-20 Cisco Technology, Inc. Priority tagging based solutions in FC SANs independent of target priority tagging capability

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313278A (en) * 2005-12-02 2008-11-26 国际商业机器公司 Maintaining session states within virtual machine environments
CN101410803A (en) * 2006-01-24 2009-04-15 思杰系统有限公司 Methods and systems for providing access to a computing environment
CN101656718A (en) * 2008-08-18 2010-02-24 英业达股份有限公司 Network server system and method for establishing and starting virtual machine thereof

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325233B2 (en) * 2001-11-07 2008-01-29 Sap Ag Process attachable virtual machines
JP4119239B2 (en) * 2002-12-20 2008-07-16 株式会社日立製作所 Computer resources allocation method, the resource management server and computer systems for doing so
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US20070008884A1 (en) 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7756972B2 (en) 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
JP4367406B2 (en) * 2005-12-12 2009-11-18 株式会社日立製作所 Computer allocation method
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20080059556A1 (en) 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
JP5427181B2 (en) * 2007-10-03 2014-02-26 ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド Virtualization application acceleration infrastructure
CA2699309A1 (en) * 2007-10-21 2009-04-30 Citrix Systems, Inc. Systems and methods to adaptively load balance user sessions to reduce energy consumption
US8868675B2 (en) * 2008-12-04 2014-10-21 Cisco Technology, Inc. Network optimization using distributed virtual resources
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
US7996525B2 (en) * 2008-12-31 2011-08-09 Sap Ag Systems and methods for dynamically provisioning cloud computing resources
US8336049B2 (en) * 2009-02-05 2012-12-18 Vmware, Inc. Virtual machine utility computing method and system
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US8289975B2 (en) 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for handling a multi-connection protocol between a client and server traversing a multi-core system
US8387060B2 (en) * 2009-10-01 2013-02-26 Dell Products L.P. Virtual machine resource allocation group policy based on workload profile, application utilization and resource utilization
US9354960B2 (en) * 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
EP2659651A1 (en) * 2010-12-29 2013-11-06 Citrix Systems Inc. Systems and methods for policy based integration to horizontally deployed wan optimization appliances
US9384058B2 (en) * 2011-03-02 2016-07-05 Radware, Ltd. Method for executing virtual application delivery controllers having different application versions over a computing device
US9323577B2 (en) * 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9231871B2 (en) * 2013-11-25 2016-01-05 Versa Networks, Inc. Flow distribution table for packet flow load balancing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313278A (en) * 2005-12-02 2008-11-26 国际商业机器公司 Maintaining session states within virtual machine environments
CN101410803A (en) * 2006-01-24 2009-04-15 思杰系统有限公司 Methods and systems for providing access to a computing environment
CN101656718A (en) * 2008-08-18 2010-02-24 英业达股份有限公司 Network server system and method for establishing and starting virtual machine thereof

Also Published As

Publication number Publication date
US20150012864A1 (en) 2015-01-08
US20150007180A1 (en) 2015-01-01
US8856783B2 (en) 2014-10-07
EP2442226B1 (en) 2013-08-07
CN102446121A (en) 2012-05-09
EP2442226A1 (en) 2012-04-18
US10019128B2 (en) 2018-07-10
US20120089980A1 (en) 2012-04-12
HK1168162A1 (en) 2013-12-13
US9069438B2 (en) 2015-06-30

Similar Documents

Publication Publication Date Title
US9104672B2 (en) Virtual security zones for data processing environments
US10044795B2 (en) Methods and apparatus for rack deployments for virtual computing environments
CN102576354B (en) Support different deployment architectures scalable framework
RU2562436C2 (en) Techniques for downloading target object of virtual storage
US8301746B2 (en) Method and system for abstracting non-functional requirements based deployment of virtual machines
AU2009225796B2 (en) Methods and systems for efficiently managing and configuring virtual servers
US8589481B2 (en) Multi tenant access to applications
US8296357B2 (en) Systems and methods for remoting multimedia plugin calls
US9489227B2 (en) Apparatus and method for virtual desktop service
US8949408B2 (en) Session monitoring of virtual desktops in a virtual machine farm
EP2344953B1 (en) Provisioning virtual resources using name resolution
US8904005B2 (en) Indentifying service dependencies in a cloud deployment
US9710297B2 (en) Dynamic allocation and assignment of virtual environment
US8751844B2 (en) Systems and methods for attributing an amount of power consumption to a workload
US8806015B2 (en) Workload-aware placement in private heterogeneous clouds
CN104765620B (en) A method and system for program modules deployed
US8943512B2 (en) Systems and methods for facilitating virtualization of a heterogeneous processor pool
US9264296B2 (en) Continuous upgrading of computers in a load balanced environment
US20130151685A1 (en) Controlling A Network Interface Using Virtual Switch Proxying
CN103814358B (en) Virtual machines within the server group placement
US20120096149A1 (en) Cloud federation in a cloud computing environment
US20110276963A1 (en) Virtual Data Storage Devices and Applications Over Wide Area Networks
US8988998B2 (en) Data processing environment integration control
US8065676B1 (en) Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
US7912955B1 (en) Model-based provisioning of resources

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
C14 Grant of patent or utility model