# US 10,372,474 B2 · Predictive login of virtual machines

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,474 B2
- Document ID: US10372474B2
- Status: Granted
- Kind: B2
- Application number: 15/169,579
- Filed: 2016-05-31
- Published: 2017-11-30
- Granted: 2019-08-06
- Earliest claimed: 2016-05-31
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Jeffrey Ulatoski
- Web page: https://patentgrep.com/patent/US10372474B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4451: {User profiles; Roaming}
- G06F 9/5005: {to service a request}
- G06F 21/316: {by observing the pattern of computer usage, e.g. typical user behaviour}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described herein are systems, methods, and software to configure virtual machines for end users based on a login history for the end users. In one implementation, a method of operating a virtual computing service that dynamically configures virtual machines includes capturing a login history indicative of when users login to a plurality of virtual machines using the virtual computing service. The method further provides, identifying an anticipated login time for a subset of the users based on the login history and identifying a configuration for the subset of users that is earlier than the anticipated login time. The method also includes, configuring a virtual machine at the configuration time for each user in the subset of the users by attaching at least one storage volume associated with the user to the virtual machine.

## Claims

### Claim 1

A method of operating a virtual computing service that dynamically configures virtual machines with storage volumes as required for virtual sessions, the method comprising:
capturing a login history indicative of when a plurality of users login to a plurality of virtual machines using the virtual computing service;
identifying an anticipated login time for a subset of the plurality of users based on the login history;
for the subset of the plurality of users, identifying a configuration time that is earlier than the anticipated login time; and
configuring a virtual machine at the configuration time for each user in the subset of the plurality of users by attaching at least one storage volume associated with the user to the virtual machine.

### Claim 2 (depends on 1)

The method of claim 1 wherein attaching the at least one storage volume associated with the user to the virtual machine comprises attaching at least one application storage volume associated with the user to the virtual machine.

### Claim 3 (depends on 2)

The method of claim 2 wherein attaching the at least one application storage volume associated with the user to the virtual machine comprises mounting the at least one application storage volume to the virtual machine, and modifying registry keys on the virtual machine to make at least one application on the application storage volume executable on the virtual machine.

### Claim 4 (depends on 3)

The method of claim 3 wherein the at least one application storage volume comprises executable files for the at least one application.

### Claim 5 (depends on 4)

The method of claim 4 further comprising overlaying pointers for the executable files in an application directory on the virtual machine.

### Claim 6 (depends on 2)

The method of claim 2 wherein attaching the at least one storage volume comprises mounting at least one user storage volume to the virtual machine.

### Claim 7 (depends on 1)

The method of claim 1 wherein the at least one storage volume comprises at least one virtual machine disk or at least one virtual hard disk.

### Claim 8 (depends on 1)

The method of claim 1 wherein identifying the configuration time that is earlier than the anticipated login time comprises identifying a time capable of completing the configured virtual machines for the subset of the plurality of users prior to the anticipated login time.

### Claim 9 (depends on 1)

The method of claim 1 further comprising receiving a login from a first user in the subset of the plurality of users, and assigning the first user to a virtual machine configured for the first user.

### Claim 10 (depends on 1)

The method of claim 1 further comprising identifying a first user in the subset of the plurality of users that fails to login within a login period following the anticipated login time, and detaching at least one storage volume associated with the first user from a virtual machine configured for the first user.

### Claim 11

An apparatus comprising:
one or more non-transitory computer-readable storage media;
program instructions stored on the one or more non-transitory computer-readable storage media to operate a virtual computing service that, when read and executed by a processing system, direct the processing system to at least:
capture a login history indicative of when a plurality of users login to a plurality of virtual machines using the virtual computing service;
identify an anticipated login time for a subset of the plurality of users based on the login history;
for the subset of the plurality of users, identify a configuration time that is earlier than the anticipated login time; and
configure a virtual machine at the configuration time for each user in the subset of the plurality of users by attaching at least one storage volume associated with the user to the virtual machine.

### Claim 12 (depends on 11)

The apparatus of claim 11 wherein the program instructions to attach the at least one storage volume associated with the user to the virtual machine direct the processing system to attach at least one application storage volume associated with the user to the virtual machine.

### Claim 13 (depends on 12)

The apparatus of claim 12 wherein the program instructions to attach the at least one application storage volume associated with the user to the virtual machine direct the processing system to mount the at least one application storage volume to the virtual machine and modify registry keys on the virtual machine to make at least one application on the storage volume executable on the virtual machine.

### Claim 14 (depends on 13)

The apparatus of claim 13 wherein the at least one application storage volume comprises executable files for the at least one application.

### Claim 15 (depends on 14)

The apparatus of claim 14 wherein the program instructions further direct the processing system to overlay pointers for the executable files in an application directory on the virtual machine.

### Claim 16 (depends on 12)

The apparatus of claim 12 wherein the program instructions to attach the at least one storage volume direct the processing system to mount at least one user storage volume to the virtual machine.

### Claim 17 (depends on 11)

The apparatus of claim 11 wherein the at least one storage volume comprises at least one virtual machine disk or at least one virtual hard disk.

### Claim 18 (depends on 11)

The apparatus of claim 11 wherein the program instructions to identify the configuration time that is earlier than the anticipated login time direct the processing system to identify a time capable of completing the configured virtual machines for the subset of the plurality of users prior to the anticipated login time.

### Claim 19 (depends on 11)

The apparatus of claim 11 wherein the program instructions further direct the processing system to identify a first user in the subset of the plurality of users that fails to login within a login period following the anticipated login time, and detach at least one storage volume associated with the first user from a virtual machine configured for the first user.

### Claim 20 (depends on 11)

The apparatus of claim 11 further comprising the processing system operatively coupled with the one or more non-transitory computer-readable storage media.
