Dynamic resource configuration based on context
First Claim
Patent Images
1. A system for resource allocation in a virtualized computing environment, comprising at least one physical computing system hosting a plurality of virtual machines (VMs), the system comprising:
- a memory;
a processor;
a plurality of agents, each associated with at least one of the plurality of VMs, that, when executed by the processor, collect activity information about the associated VM;
a module that is stored in the memory and, when executed by the processor, dynamically allocates physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop remotely accessible by a user, the dynamic allocation performed by;
monitoring, by the plurality of agents, a state of the virtual desktop of each associated VM to detect activities triggered by an active user session, the detected activities forming at least a portion of the activity information;
comparing the collected activity information to a policy;
in response to the detected activities, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs,wherein modifying the allocation of the physical computing resources further comprises suspending or resuming fault tolerance operating on at least one of the plurality of VMs by;
upon determining that either the VM or the user is idle based on the monitoring, suspending the operation of fault tolerance on the VM; and
upon determining that either the VM or the user is active based on the monitoring, resuming the operation of fault tolerance on the VM.
3 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the disclosure allocate shares of processing resources or other physical resources among virtual machines (VMs) operating as, for example, virtual desktops on a plurality of host computing devices. Allocations of resources are adjusted based on the user activity, VM activity, and/or application activity detected by an agent executing on each VM. Allocated shares may be boosted, unboosted, or normalized, depending on the type and duration of detected activity, by a resource allocation manager executing on a management server.
39 Citations
22 Claims
-
1. A system for resource allocation in a virtualized computing environment, comprising at least one physical computing system hosting a plurality of virtual machines (VMs), the system comprising:
-
a memory; a processor; a plurality of agents, each associated with at least one of the plurality of VMs, that, when executed by the processor, collect activity information about the associated VM; a module that is stored in the memory and, when executed by the processor, dynamically allocates physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop remotely accessible by a user, the dynamic allocation performed by; monitoring, by the plurality of agents, a state of the virtual desktop of each associated VM to detect activities triggered by an active user session, the detected activities forming at least a portion of the activity information; comparing the collected activity information to a policy; in response to the detected activities, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs, wherein modifying the allocation of the physical computing resources further comprises suspending or resuming fault tolerance operating on at least one of the plurality of VMs by; upon determining that either the VM or the user is idle based on the monitoring, suspending the operation of fault tolerance on the VM; and upon determining that either the VM or the user is active based on the monitoring, resuming the operation of fault tolerance on the VM. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for resource allocation in a virtualized computing environment comprising at least one physical computing system hosting a plurality of VMs, the method comprising:
dynamically allocating physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop that is remotely accessible by a user, the dynamic allocation including; receiving reports of monitored activities of the user, the VM of the user, and the applications executed by the VM of the user; comparing the monitored activities to a policy; determining, based on the comparison, that one or more of the monitored activities has a higher or lower priority than other activities; and in response to the determination, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs, wherein modifying the allocation of the physical computing resources further comprises suspending or resuming fault tolerance operating on the VM by; upon determining that either the VM or the user is idle based on the received reports, suspending the operation of fault tolerance on the VM; and upon determining that either the VM or the user is active based on the received reports, resuming the operation of fault tolerance on the VM. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
16. A non-transitory computer-readable medium including computer-executable instructions that, when executed by a processor, allocate resources in a virtualized computing environment comprising at least one physical computing system hosting a plurality of VMs, the computer-executable instructions comprising:
dynamically allocating physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop that is remotely accessible by a user, the dynamic allocation including; receiving a monitored state of the virtual desktops instantiated on the plurality of VMs to detect activities triggered by active user sessions with the virtual desktops; receiving indications of priority corresponding to the detected activities; determining, based on the monitored state and the received indications of priority, that at least one of the detected activities triggers a policy; and in response to the determining, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs, wherein modifying the allocation of the physical computing resources further comprises suspending or resuming fault tolerance operating on at least one of the plurality of VMs by; upon determining that either the VM or the user is idle based on the received reports, suspending the operation of fault tolerance on the VM; and upon determining that either the VM or the user is active based on the received reports, resuming the operation of fault tolerance on the VM. - View Dependent Claims (17, 18, 19)
-
20. A system for resource allocation in a virtualized computing environment, comprising at least one physical computing system hosting a plurality of virtual machines (VMs), the system comprising:
-
a memory; a processor; a plurality of agents, each associated with at least one of the plurality of VMs, that, when executed by the processor, collect activity information about the associated VM; a module that is stored in the memory and, when executed by the processor, dynamically allocates physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop remotely accessible by a user, the dynamic allocation performed by; monitoring, by the plurality of agents, a state of the virtual desktop of each associated VM to detect activities triggered by an active user session, the detected activities forming at least a portion of the activity information; comparing the collected activity information to a policy; in response to the detected activities, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs, wherein modifying the allocation of the physical resources further comprises defining a storage priority of data packets transmitted by an application by; upon determining that the application is active and whitelisted, marking any data packets originated by the application as high priority; upon determining that the application is inactive, marking any data packets originated by the application as low priority; upon determining that the application is blacklisted, marking any data packets originated by the application as low priority; and storing the data packets according to the marked priority.
-
-
21. A method for resource allocation in a virtualized computing environment comprising at least one physical computing system hosting a plurality of VMs, the method comprising:
dynamically allocating physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop that is remotely accessible by a user, the dynamic allocation including; receiving reports of monitored activities of the user, the VM of the user, and the applications executed by the VM of the user; comparing the monitored activities to a policy; determining, based on the comparison, that one or more of the monitored activities has a higher or lower priority than other activities; and in response to the determination, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs, wherein modifying the allocation of the physical resources further comprises defining a storage priority of data packets transmitted by at least one of the applications by; upon determining that the application is active and whitelisted, marking any data packets originated by the application as high priority; upon determining that the application is inactive, marking any data packets originated by the application as low priority; upon determining that the application is blacklisted, marking any data packets originated by the application as low priority; and storing the data packets according to the marked priority.
-
22. A non-transitory computer-readable medium including computer-executable instructions that, when executed by a processor, allocate resources in a virtualized computing environment comprising at least one physical computing system hosting a plurality of VMs, the computer-executable instructions comprising:
dynamically allocating physical computing resources of the at least one physical computing system amongst the plurality of VMs, each of the plurality of VMs configured to execute a virtual desktop that is remotely accessible by a user, the dynamic allocation including; receiving a monitored state of the virtual desktops instantiated on the plurality of VMs to detect activities triggered by active user sessions with the virtual desktops; receiving indications of priority corresponding to the detected activities; determining, based on the monitored state and the received indications of priority, that at least one of the detected activities triggers a policy; and in response to the determining, automatically modifying, based on the policy, an allocation of the physical computing resources of the at least one physical computing system to the plurality of VMs, wherein modifying the allocation of the physical resources further comprises defining a storage priority of data packets transmitted by an application by; upon determining that the application is active and whitelisted, marking any data packets originated by the application as high priority; upon determining that the application is inactive, marking any data packets originated by the application as low priority; upon determining that the application is blacklisted, marking any data packets originated by the application as low priority; and storing the data packets according to the marked priority.
Specification