IP Library Granted Patent US 11,734,035
Granted Patent B2
US 11,734,035 · App. 17/118,329 · Granted Aug 22, 2023

Virtual machine load balancing

Inventors: Rajiv Kottomtharayil (Marlboro, NJ); Rahul S. Pawar (Marlboro, NJ); Ashwin Gautamchand Sancheti (Marlboro, NJ); Sumer Dilip Deshpande (Ocean, NJ); Sri Karthik Bhagi (Morganville, NJ); Henry Wallace Dornemann (Eatontown, NJ); Ananda Venkatesha (Cupertino, CA)
Assignee: Commvault Systems, Inc.
G06F9/45533G06F9/505G06F9/5083G06F2209/5022
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 11,734,035
App. No.
17/118,329
Granted
Aug 22, 2023
Kind
B2
Abstract

Virtual machine (VM) proliferation may be reduced by determining the availability of existing VMs to perform a task. Tasks may be assigned to existing VMs instead of creating a new VM to perform the task. Furthermore, a coordinator may determine a grouping of VMs or VM hosts based on one or more factors associated with the VMs or the VM hosts, such as VM type or geographical location of the VM hosts. The coordinator may also assign one or more Virtual Server Agents (VSAs) to facilitate managing the group of VM hosts. In some embodiments, the coordinators may facilitate load balancing of VSAs during operation, such as during a backup operation, a restore operation, or any other operation between a primary storage system and a secondary storage system.

Claims (52)

1. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for reducing virtual machine (VM) proliferation, the method comprising: receiving a job request at a computing device comprising computer hardware;

determining an expected load for the job request;

selecting a threshold load based at least partially on the expected load for the job request;

determining a load for each VM within a set of VMs;

determining whether a load of at least one VM is below the threshold load; and

in response to determining that the load of at least one VM is below the threshold load, selecting a VM from a subset of VMs, wherein each VM in the subset of VMs is associated with a load that is below the threshold load; and

assigning a job associated with the job request to the selected VM.

2. The computer-readable storage medium of claim 1 , wherein determining the load for each VM from the set of VMs comprises accessing one or more VM monitors to obtain the load for each VM.

3. The computer-readable storage medium of claim 1 , wherein the job request is a data protection operation according to a storage policy, wherein the storage policy is a collection of settings or preferences for performing data protection operations on data associated with the storage policy.

4. The computer-readable storage medium of claim 1 , wherein the job request is received from a virtual server agent coordinator.

5. The computer-readable storage medium of claim 1 , wherein a virtual server agent is configured to at least partially manage the set of VMs.

6. The computer-readable storage medium of claim 5 , wherein the virtual server agent is part of a primary storage system.

7. The computer-readable storage medium of claim 5 , wherein the virtual server agent is configured to communicate with one or more media agents of a secondary storage system via one or more streams between the virtual server agent and each media agent of the one or more media agents.

8. The computer-readable storage medium of claim 1 , wherein selecting the VM comprises selecting a VM based at least partially on a load balancing scheme.

9. The computer-readable storage medium of claim 8 , wherein the load balancing scheme is specified by a storage policy associated with data to be modified or copied by the job request,

wherein the storage policy is a collection of settings or preferences for performing data protection operations on data associated with the storage policy.

10. The computer-readable storage medium of claim 1 , the method further comprising:

identifying a job type of the job request; and

selecting the threshold load based at least partially on the job type.

11. The computer-readable storage medium of claim 1 , the method further comprising:

initiating creation of a new VM, wherein the initiating of creation of the new VM comprises:

selecting a computing system from a set of computing systems, the set of computing systems hosting the set of VMs; and

causing a VM monitor of the selected computing system to create the new VM.

12. The computer-readable storage medium of claim 11 , wherein selecting the computing system is based at least partially on a job type of the job request.

13. The computer-readable storage medium of claim 11 , wherein selecting the computing system comprises selecting the computing system based at least partially on a load balancing scheme.

14. A system for reducing VM proliferation, the system comprising:

one or more computing devices comprising computer hardware, the one or more computing devices configured to:

receive a job request to perform a data protection operation according to a storage policy,

wherein the storage policy is a collection of settings or preferences for performing data protection operations on data associated with the storage policy;

determine an expected load for the job request;

select a threshold load based at least partially on the expected load for the job request;

access load information for each VM from a set of available VMs;

identify, based at least partially on the load information for each VM, a subset of VMs from the set of available VMs,

wherein each VM in the subset of VMs is associated with a load that is below the threshold load; and

select a VM from the subset of VMs and assign a job associated with the job request to the selected VM.

15. The system of claim 14 , wherein the data protection operation relates to pruning or aging data.

16. The system of claim 14 , wherein the data protection operation is a backup operation for backing up primary data to a secondary storage system.

17. The system of claim 14 , wherein the one or more computing devices are further configured to initiate creation of a new VM and to assign the job associated with the job request to the new VM.

18. The system of claim 17 , wherein the one or more computing devices are further configured to initiate the creation of the new VM by:

selecting a computing system from a set of computing systems, the set of computing systems configured to host a set of VMs; and

causing a VM monitor of the selected computing system to create the new VM.

19. The system of claim 17 , wherein the one or more computing devices are further configured to provide information associated with the new VM to a VM management interface configured to present VM status information to a user.

20. The system of claim 14 , wherein the one or more computing devices are further configured to access one or more VM monitors to obtain the load information for each VM.

21. The system of claim 14 , wherein the one or more computing devices are further configured to communicate with one or more media agents of a secondary storage system via one or more streams.

22. A system for reducing VM proliferation, the system comprising:

one or more computing devices comprising computer hardware, the one or more computing devices configured to:

receive a job request;

determine an expected load for the job request;

select a threshold load based at least partially on the expected load for the job request;

access load information for each VM from a set of available VMs;

identify, based at least partially on the load information for each VM, a subset of VMs from the set of available VMs; wherein each VM in the subset of VMs is associated with a load that is below the threshold load; and

create a new VM when the subset of VMs is a zero subset; and assign the job associated with the job request to the new VM.

Assignments (3)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: KOTTOMTHARAYIL, RAJIV; PAWAR, RAHUL S.; SANCHETI, ASHWIN GAUTAMCHAND; DESHPANDE, SUMER DILIP; BHAGI, SRI KARTHIK; DORNEMANN, HENRY WALLACE; VENKATESHA, ANANDA
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054622/0001 →
Continuity (6)
Continuation 16518107 · Jul 22, 2019
Continuation 15960401 · Apr 23, 2018
Continuation 15196739 · Jun 29, 2016
Continuation 14148507 · Jan 6, 2014
Provisional Application 61750255 · Jan 8, 2013
Related Publication 20210096893A1 · Apr 1, 2021