IP Library Granted Patent US 12,468,565
Granted Patent B2
US 12,468,565 · App. 17/993,529 · Granted Nov 11, 2025

Systems and methods of auto-scaling a virtual desktop environment

Inventor: Vadim Vladimirskiy (Chicago, IL)
Assignee: Nerdio, Inc.
G06F9/45558G06F9/452G06F2009/4557G06F2009/45575G06F2009/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 12,468,565
App. No.
17/993,529
Granted
Nov 11, 2025
Kind
B2
Abstract

A system for optimizing OS disk resource utilization in a dynamically auto-scaling virtual desktop environment includes: a scalable virtual desktop environment in which a VM is selectively powered on and off, wherein the VM is associated with a corresponding OS disk that is alternatively assigned to a higher performance OS disk tier or a lower cost OS disk tier; a server including a controller controlling the powering on and the powering off of the VM and assigning the OS disk tier to the VM; and a memory coupled to the controller, wherein the memory stores executable code programming the controller to: in response to the controller powering off the VM, assign the lower cost OS disk tier to the virtual machine; and prior to the controller powering on the virtual machine, assign the higher performance OS disk tier to the virtual machine.

Claims (23)

1 . A system for dynamically auto-scaling allocated capacity of a virtual desktop environment comprising:

a scalable virtual desktop environment comprising 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 operation of the base capacity resources and the burst capacity resources;

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:

provide a host pool sizing tool including controls for a base host pool capacity, a minimum active host capacity, and a burst beyond base capacity;

provide an available sessions scaling out logic tool;

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;

in response to receiving a log in request from a second user device, connect a second user device to a second host pool to which the second 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 an auto-scaling trigger and a 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;

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.

2 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide a pre-stage hosts tool defining one or more work days, a start of work hours, and a number of hosts to be active by the start of work hours.

3 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide a CPU usage scaling out logic tool including an auto-scale trigger and a number of hosts to scale out when the CPU utilization exceeds a given capacity for a given duration.

4 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide an average active sessions per host scaling out logic tool including an auto-scale trigger and a number of hosts to scale out when the average active sessions per host exceeds a given number.

5 . The system of claim 1 , wherein, the available sessions scaling out logic tool includes an auto-scale trigger selection, a maximum sessions per host, and a minimum number of available sessions that need to be maintained at all times.

6 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide a working hours scaling out logic tool based on one or more of a day of the week, a time range, a setting for power off aggressiveness, and a setting for power on timing.

7 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide a CPU usage scaling logic tool including scale out and scale in definitions including an auto-scale trigger and a number of hosts to scale out when the CPU utilization exceeds a given capacity for a given duration, and a number of hosts to scale in when the CPU utilization drops below a given capacity for a given duration.

8 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide an average active sessions scaling logic tool including scale out and scale in definitions including an auto-scale trigger and a number of host to scale out when the average active sessions across all hosts exceeds a given value, and a number of hosts to scale in when an average active sessions across all hosts is below a given value.

9 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide a scale in restrictions tool including times in which scale in will be restricted and a level of scale in aggressiveness to apply.

10 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide a scale in messaging tool including when to send a message relative to a scale in action.

11 . The system of claim 1 , wherein, in response to executing the program instructions, the controller is configured to provide an auto-heal broken hosts tool including instructions defining how to identify when to heal a broken session host, including applicable WVD agent statuses and whether hosts with any session or with active sessions should be acted upon, a number of restart attempts, a time between restart attempts, and how to handle unrecoverable hosts.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2026
From: VLADIMIRSKIY, VADIM
To: NERDIO, INC.
Reel/Frame 075236/0655 →
Continuity (4)
Continuation In Part 17696311 · Mar 16, 2022
Provisional Application 63283010 · Nov 24, 2021
Provisional Application 63161700 · Mar 16, 2021
Related Publication 20230096984A1 · Mar 30, 2023
References Cited (28)
US 9645847B1 · Roth · 2017 [cited by examiner]
US 9880740B2 · Tati · 2018 [cited by examiner]
US 9971621B1 · Berg · 2018 [cited by examiner]
US 10007558B2 · Shan · 2018 [cited by examiner]
US 10089130B2 · Kim · 2018 [cited by examiner]
US 11113120B1 · Greenfield · 2021 [cited by examiner]
US 11748125B2 · Vladimirskiy · 2023 [cited by examiner]
US 11960913B2 · Vladimirskiy · 2024 [cited by examiner]
US 12254331B2 · Vladimirskiy · 2025 [cited by examiner]
US 20090276771A1 · Nickolov · 2009 [cited by examiner]
US 20120254443A1 · Ueda · 2012 [cited by examiner]
US 20130346969A1 · Shanmuganathan · 2013 [cited by examiner]
US 20140058871A1 · Marr · 2014 [cited by examiner]
US 20140208000A1 · Phelan · 2014 [cited by examiner]
US 20150006614A1 · Suryanarayanan · 2015 [cited by examiner]
US 20150019705A1 · Suryanarayanan · 2015 [cited by examiner]
US 20150278061A1 · Siciliano · 2015 [cited by examiner]
US 20150331703A1 · Kelly · 2015 [cited by examiner]
US 20150378765A1 · Singh · 2015 [cited by examiner]
US 20170339196A1 · Lewis · 2017 [cited by examiner]
US 20180287956A1 · Bryc · 2018 [cited by examiner]
US 20190004837A1 · Tiwary · 2019 [cited by examiner]
US 20190052528A1 · Yoshimura · 2019 [cited by examiner]
US 20190213027A1 · Bhandari · 2019 [cited by examiner]
US 20190286472A1 · Beveridge · 2019 [cited by examiner]
US 20200004590A1 · Tang · 2020 [cited by examiner]
US 20220156124A1 · Nandavanam · 2022 [cited by examiner]
Wu et al.; “HybridScaler: Handling Bursting Workload for Multi-tier Web Applications in Cloud”; HybridScaler: Handling Bursting Workload for Multi-tier Web Applications in Cloud; DOI 10.1109/ISPDC.2016.26; 2016 IEEE (Wu… [cited by examiner]