IP Library Granted Patent US 12,645,476
Granted Patent B1
US 12,645,476 · App. 15/889,197 · Granted Jun 2, 2026

Resource management in a virtual machine cluster

Inventors: Aaron Pagl (San Carlos, CA); NAte Hardt (San Carlos, CA)
Assignee: Scale Computing, Inc.
G06F9/45558G06F9/5077G06F11/07G06F9/45533G06F2009/4557G06F2009/45579
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,645,476
App. No.
15/889,197
Granted
Jun 2, 2026
Kind
B1
Abstract

Managing resources in a VM cluster; allocation of resources among competing VMs. Assigning VMs to real devices, responsive to needs for resources: processor usage, disk I/O, network I/O, memory space, disk space. Assigning VMs responsive to needs for cluster activity: network response latency, QoS. Using predictive models of resource usage by VMs. Transferring VMs, improving utilization. Failing-soft onto alternative VM resources. Providing a resource buffer for collective VM resource demand. Transferring VMs to a cloud service that charges for resources.

Claims (52)

1 . A method, including steps of

identifying a category of application programs into which a selected virtual machine fits;

identifying a current workplace usage associated with a distributed fault-tolerant multiprocessor cluster, to provide a preferred set of real devices on which to execute the selected virtual machine;

transferring one or more virtual machines, including the selected virtual machine, between real devices in the distributed fault-tolerant multiprocessor cluster, in response to a set of time-changing resource requirements;

measuring use of a plurality of different resources by the selected virtual machine;

providing a model of future actual resource usage by the selected virtual machine in response to the steps of measuring, wherein the steps of identifying a category are responsive to the model of future resource usage by the selected virtual machine; and

predicting said set of time-changing resource requirements in response to the current workplace usage and a result of the steps of identifying a category;

wherein the step of transferring includes steps of

halting a particular one virtual machine;

reallocating a new set of real devices to said particular one virtual machine; and

restarting said particular one virtual machine;

wherein said particular one virtual machine does not know the step of transferring has occurred.

2 . The method as in claim 1 , wherein the step of transferring one or more virtual machines is responsive to the set of time-changing resource requirements.

3 . The method as in claim 1 , further comprising predicting said set of time-changing resource requirements in response to past behavior of one or more said virtual machines.

4 . A distributed fault-tolerant multiprocessor cluster including one or more real devices disposed to execute one or more virtual machines, wherein the one or more real devices are disposed to collectively perform steps of

identifying a category of application programs into which a selected one or more of the virtual machines fits;

identifying a current workplace usage associated with the distributed fault-tolerant multiprocessor cluster, to provide a preferred set of the one or more real devices on which to execute the selected one or more of the virtual machines;

transferring one or more of the virtual machines, including the selected one or more virtual machines, between the one or more real devices in the distributed fault-tolerant multiprocessor cluster, in response to a set of time-changing resource requirements;

measuring use of a plurality of different resources by the selected one or more virtual machines;

providing a model of future actual resource usage by the selected virtual machine in response to the steps of measuring, wherein the steps of identifying a category are responsive to the model of future resource usage by the selected virtual machine; and

predicting said set of time-changing resource requirements in response to the current workplace usage and a result of the steps of identifying a category;

wherein the step of transferring includes steps of

halting a particular one virtual machine;

reallocating a new set of real devices to said particular one virtual machine; and

restarting said particular one virtual machine;

wherein said particular one virtual machine does not know the step of transferring has occurred.

5 . A distributed fault-tolerant multiprocessor cluster as in claim 4 , wherein the step of transferring one or more virtual machines is responsive to the set of time-changing resource requirements.

6 . A distributed fault-tolerant multiprocessor cluster as in claim 4 , wherein the steps further comprise predicting said set of time-changing resource requirements in response to past behavior of virtual machines.

7 . A method of operating a distributed fault-tolerant multiprocessor cluster, including steps of

measuring use of resources by one or more virtual machines in the distributed fault-tolerant multiprocessor cluster, the use of resources disposed to vary over a time duration;

generating at least one model of resource usage by each such one or more virtual machines, the model having a time-varying component; and

allocating resources to the one or more virtual machines in response to a time-varying prediction by the at least one model;

wherein the step of allocating resources includes steps of transferring one or more virtual machines between a first set of re-sources and a second set of resources available at the distributed fault-tolerant multiprocessor cluster, wherein the steps of transferring include steps of

halting a particular one virtual machine;

reallocating a new set of resources to said particular one virtual machine; and

restarting said particular one virtual machine;

wherein said particular one virtual machine does not know the step of transferring has occurred.

8 . A method as in claim 7 , wherein the model distinguishes between daily work and background applications.

9 . A method as in claim 7 , wherein the steps of generating include steps of determining a category into which a selected virtual machine fits.

10 . A method as in claim 7 , wherein the model includes a time of day during which the virtual machine is to execute, for which the time-varying prediction is made.

11 . A distributed fault-tolerant multiprocessor cluster including one or more real devices disposed to execute one or more virtual machines, wherein the one or more real devices perform at least steps of

measuring use of resources by the one or more virtual machines over a time duration;

generating at least one model of resource usage by each such one or more virtual machines; and

allocating resources to the one or more virtual machines in response to the at least one model;

wherein the step of allocating resources includes steps of transferring one or more virtual machines between a first set of re-sources and a second set of resources available at the distributed fault-tolerant multiprocessor cluster, wherein the step of transferring includes steps of

halting a particular one virtual machine;

reallocating a new set of resources to said particular one virtual machine; and

restarting said particular one virtual machine;

wherein said particular one virtual machine does not know the step of transferring has occurred.

12 . A distributed fault-tolerant multiprocessor cluster as in claim 11 , wherein the model distinguishes between daily work and background applications.

13 . A distributed fault-tolerant multiprocessor cluster as in claim 11 , wherein the steps of generating includes steps of determining a category into which a selected virtual machine fits.

14 . A distributed fault-tolerant multiprocessor cluster as in claim 11 , wherein the category includes a time of day.

Assignments (9)
SECURITY INTEREST Recorded Jan 29, 2026
From: SCALE COMPUTING, LLC
To: TORONTO DOMINION (TEXAS) LLC
Reel/Frame 073633/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2025
From: SCALE COMPUTING, LLC
To: SCALE COMPUTING, INC.
Reel/Frame 072864/0595 →
MERGER Recorded Aug 28, 2025
From: SCALE COMPUTING, INC.
To: ACUMERA SCALE, LLC
Reel/Frame 072695/0834 →
CHANGE OF NAME Recorded Aug 28, 2025
From: ACUMERA SCALE, LLC
To: SCALE COMPUTING, LLC
Reel/Frame 072699/0326 →
RELEASE OF SECURITY INTEREST Recorded Dec 11, 2020
From: RUNWAY GROWTH CREDIT FUND INC.
To: SCALE COMPUTING, INC.
Reel/Frame 054619/0802 →
RELEASE OF SECURITY INTEREST Recorded Dec 10, 2020
From: RUNWAY GROWTH CREDIT FUND INC., AS AGENT
To: SCALE COMPUTING, INC.
Reel/Frame 054611/0589 →
SECURITY INTEREST Recorded Mar 29, 2019
From: SCALE COMPUTING, INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 048745/0653 →
RELEASE OF SECURITY INTEREST Recorded Mar 29, 2019
From: BET ASSOCIATES III, LLC
To: SCALE COMPUTING, INC.
Reel/Frame 048746/0597 →
SECURITY INTEREST Recorded Jun 27, 2018
From: SCALE COMPUTING, INC.
To: BET ASSOCIATES III, LLC
Reel/Frame 046212/0831 →
Continuity (1)
Continuation 14554008 · Nov 25, 2014
References Cited (4)
US 9378044B1 · Gaurav · 2016 [cited by examiner]
US 20100191854A1 · Isci · 2010 [cited by examiner]
US 20120324183A1 · Chiruvolu · 2012 [cited by examiner]
US 20190188047A1 · Dao · 2019 [cited by examiner]