IP Library Granted Patent US 12693885
Granted Patent B2
US 12693885 · App. 17/993,552 · Granted Jul 28, 2026

Systems and methods of auto-scaling a virtual desktop environment

Inventor: Vadim Vladimirskiy (Chicago, IL)
Assignee: Nerdio, Inc.
G06F9/45558G06F2009/4557G06F2009/45575G06F2009/45579G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12693885
App. No.
17/993,552
Granted
Jul 28, 2026
Kind
B2
Abstract

A system including: VMs selectively powered on and off, wherein the VMs store files on a storage volume whose size can be increased and decreased; and a controller that, in response to storage volume usage, adjusts the storage volume to ensure that it is no less than the current storage volume usage plus a minimum free space and no higher than a maximum storage volume size; monitors a latency; when the latency exceeds a high threshold for a given duration, increases the storage volume size until either the latency is below a high threshold or the storage volume size reaches a maximum storage volume size; and when the latency is below a low threshold for a given duration, reduces the storage volume size until either the latency is above the low threshold or the storage volume size is the current storage volume usage plus the minimum free space.

Claims (18)

1 . A system for optimizing virtual machine (VM) performance in a dynamically auto-scaling virtual desktop environment comprising:

a scalable virtual desktop environment in which a plurality of VMs are selectively powered on and powered off, wherein the plurality of VMs store virtual disk files (VHDs) on a storage volume whose size can be increased and decreased;

wherein the scalable virtual desktop environment comprises a base capacity resources, including base compute resources and base storage resources, and a burst capacity resources, including burst compute resources and burst storage resources;

a server including a controller controlling the powering on and the powering off of the VMs and selecting a current size of the storage volume; and

a memory coupled to the controller, wherein the memory is configured to store program instructions executable by the controller; wherein, in response to executing the program instructions, the controller is configured to:

in response to receiving a log in request from a first user device, connect the first user device to a first host pool to which the first device user is assigned;

execute a load-balancing module to determine a first session host virtual machine to which to connect the first user device;

execute an auto-scaling module comprising a user-selectable auto-scaling trigger and a user-selectable conditional auto-scaling action, wherein, in response to recognition of the conditional auto-scaling action, the controller powers on or powers off one or more base capacity resources or creates or destroys one or more burst capacity resources;

receive a plurality of inputs including: a minimum free space; a maximum storage volume size; a high threshold latency measurement; a high threshold duration; a low threshold latency measurement; and a low threshold duration;

in response to the controller powering off one or more base capacity resources, assigning a lower cost OS disk tier to each of the one or more base capacity resources that have been powered off; and

prior to the controller powering on one or more base capacity resources, assigning a higher performance OS disk tier to each of the one or more base capacity resources that have been powered on;

in response to a measurement of a current storage volume usage, adjust the storage volume to ensure that it is no less than the current storage volume usage plus the minimum free space and no higher than the maximum storage volume size;

monitor a latency associated with storing the VHDs on the storage volume;

when the latency associated with storing the VHDs on the storage volume exceeds the high threshold for the high threshold duration, increase the storage volume size until either the latency is below the high threshold or the storage volume size reaches the maximum storage volume size; and

when the latency is below the low threshold for the low threshold duration, reduce the storage volume size until either the latency is above the low threshold or the storage volume size is the current storage volume usage plus the minimum free space.

2 . The system of claim 1 , wherein the plurality of inputs further includes: a schedule of expected periods of peak demand; and a required storage volume size during periods of peak demand; wherein, in response to executing the program instructions, during the expected periods of peak demand, the controller is configured to adjust the storage volume to be equal to required storage volume size during periods of peak demand.

3 . The system of claim 1 , wherein one or more of the plurality of inputs are user-defined.

4 . The system of claim 1 , wherein the storage volume is a server message block.