Maintaining a pool of free virtual machines on a server computer
First Claim
1. A non-transitory computer-accessible storage medium storing program instructions executable to implement:
- receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1;
adding a group of N free virtual machines executing on a first server computer to the pool, wherein each free virtual machine in the pool is currently unconnected to a user'"'"'s terminal and is available to be assigned to a user;
in response to receiving a first request to assign a virtual machine to a first user;
assigning a first virtual machine from the pool to the first user; and
adding a new free virtual machine to the pool to replace the first virtual machine;
wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; and
wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool;
receiving information indicating a maximum number of concurrent users that can be assigned to virtual machines on the first server computer;
receiving a second request to assign a virtual machine to a second user;
assigning a second virtual machine from the pool to the second user;
determining a first difference between the maximum number of concurrent users and a number of users currently assigned to virtual machines on the first server computer; and
determining whether to add another new free virtual machine to the pool to replace the second virtual machine based on the first difference and the pool size N.
10 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of a system and method for managing virtual machines on a server computer are described. According to one embodiment of the method, a pool of free virtual machines may be maintained on the server computer, e.g., where the number of virtual machines in the pool is specified by an administrator. In response to receiving a request to assign a virtual machine to a first user, the server computer may assign a first virtual machine from the pool to the first user and add a new virtual machine to the pool to replace the first virtual machine. In some embodiments the server computer may be one of a plurality of server computers in a server computer system. An administrator may be able to configure different pool sizes for different server computers in the system through a central user interface.
66 Citations
24 Claims
-
1. A non-transitory computer-accessible storage medium storing program instructions executable to implement:
-
receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1; adding a group of N free virtual machines executing on a first server computer to the pool, wherein each free virtual machine in the pool is currently unconnected to a user'"'"'s terminal and is available to be assigned to a user; in response to receiving a first request to assign a virtual machine to a first user; assigning a first virtual machine from the pool to the first user; and adding a new free virtual machine to the pool to replace the first virtual machine; wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; and wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool; receiving information indicating a maximum number of concurrent users that can be assigned to virtual machines on the first server computer; receiving a second request to assign a virtual machine to a second user; assigning a second virtual machine from the pool to the second user; determining a first difference between the maximum number of concurrent users and a number of users currently assigned to virtual machines on the first server computer; and determining whether to add another new free virtual machine to the pool to replace the second virtual machine based on the first difference and the pool size N. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
one or more processors; and memory storing program instructions; wherein the program instructions are executable by the one or more processors to implement; receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1; adding a group of N free virtual machines to the pool, wherein each free virtual machine in the pool is available to be assigned to a user; in response to receiving a first request to assign a virtual machine to a first user; assigning a first virtual machine from the pool to the first user; and adding a new free virtual machine to the pool to replace the first virtual machine; wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; and wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool; receiving information indicating a maximum number of concurrent users that can be assigned to virtual machines; receiving a second request to assign a virtual machine to a second user; assigning a second virtual machine from the pool to the second user; determining a first difference between the maximum number of concurrent users and a number of users currently assigned to virtual machines; and determining whether to add another new free virtual machine to the pool to replace the second virtual machine based on the first difference and the pool size N. - View Dependent Claims (8, 9)
-
-
10. A computer-implemented method comprising:
utilizing a computer to perform; receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1; adding a group of N free virtual machines executing on a first server computer to the pool, wherein each free virtual machine in the pool is available to be assigned to a user; in response to receiving a first request to assign a virtual machine to a first user; assigning a first virtual machine from the pool to the first user; and adding a new free virtual machine to the pool to replace the first virtual machine; wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; and wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool; receiving information indicating a maximum number of concurrent users that can be assigned to virtual machines on the first server computer; receiving a second request to assign a virtual machine to a second user; assigning a second virtual machine from the pool to the second user; determining a first difference between the maximum number of concurrent users and a number of users currently assigned to virtual machines on the first server computer; and determining whether to add another new free virtual machine to the pool to replace the second virtual machine based on the first difference and the pool size N. - View Dependent Claims (11)
-
12. A non-transitory computer-accessible storage medium storing program instructions executable to implement:
-
receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1; adding a group of N free virtual machines executing on a first server computer to the pool, wherein each free virtual machine in the pool is currently unconnected to a user'"'"'s terminal and is available to be assigned to a user; in response to receiving a first request to assign a virtual machine to a first user; assigning a first virtual machine from the pool to the first user; and adding a new free virtual machine to the pool to replace the first virtual machine; wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool; and wherein the pool on the first server computer is a first pool, wherein the program instructions are further executable to implement; receiving second user input specifying a second pool size M indicating a number of virtual machines for a second pool on a second server computer; and adding a group of M free virtual machines executing on the second server computer to the second pool. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A system comprising:
-
one or more processors; and memory storing program instructions; wherein the program instructions are executable by the one or more processors to implement; receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1; adding a group of N free virtual machines to the pool, wherein each free virtual machine in the pool is available to be assigned to a user; in response to receiving a first request to assign a virtual machine to a first user; assigning a first virtual machine from the pool to the first user; and adding a new free virtual machine to the pool to replace the first virtual machine; wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool; and wherein the pool on the first server computer is a first pool, wherein the program instructions are further executable to implement; receiving second user input specifying a second pool size M indicating a number of virtual machines for a second pool on a second server computer; and adding a group of M free virtual machines executing on the second server computer to the second pool. - View Dependent Claims (19, 20, 21)
-
-
22. A computer-implemented method comprising:
utilizing a computer to perform; receiving user input specifying a pool size N indicating a number of virtual machines for a pool, wherein N is a number greater than or equal to 1; adding a group of N free virtual machines executing on a first server computer to the pool, wherein each free virtual machine in the pool is available to be assigned to a user; in response to receiving a first request to assign a virtual machine to a first user; assigning a first virtual machine from the pool to the first user; and adding a new free virtual machine to the pool to replace the first virtual machine; wherein, before the new free virtual machine is added to the pool, the new free virtual machine is in a state of hibernation; wherein adding the new free virtual machine to the pool comprises returning the new free virtual machine to an active state of execution and adding the new free virtual machine to the pool; and wherein the pool on the first server computer is a first pool, wherein the program instructions are further executable to implement; receiving second user input specifying a second pool size M indicating a number of virtual machines for a second pool on a second server computer; and adding a group of M free virtual machines executing on the second server computer to the second pool. - View Dependent Claims (23, 24)
Specification