# US 2014/0196056 A1 · Virtual server agent load balancing

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

- Number: US 2014/0196056 A1
- Document ID: US20140196056A1
- Status: Published application
- Kind: A1
- Application number: 14/148,507
- Filed: 2014-01-06
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: Commvault Systems, Inc.
- Applicants: CommVault Systems, Inc.
- Inventors: Rajiv Kottomtharayil; Rahul S. Pawar; Ashwin Gautamchand Sancheti; Sumer Dilip Deshpande; Sri Karthik Bhagi; Henry Wallace Dornemann; Ananda Venkatesha
- Web page: https://patentgrep.com/patent/US20140196056A1

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/505: {considering the load}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 2209/5022: Workload threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Virtual machine (VM) proliferation may be reduced through the use of Virtual Server Agents (VSAs) assigned to a group of VM hosts that may determine the availability of a VM to perform a task. Tasks may be assigned to existing VMs instead of creating a new VM to perform the task. Furthermore, a VSA 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 VSA coordinator may also assign one or more VSAs to facilitate managing the group of VM hosts. In some embodiments, the VSA 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

### Claim 1

A method of virtual server agent load balancing, the method comprising:
by a virtual server agent coordinator comprising computer hardware:
identifying a set of virtual machines for backup to a secondary storage system, the set of virtual machines hosted by a set of virtual machine provider systems, the set of virtual machine provider systems included in a primary storage system;
identifying a set of virtual server agents available to backup data from the set of virtual machines to the secondary storage system;
determining a number of data streams available to each virtual server agent from the set of virtual server agents; and
distributing the set of virtual machines among the set of virtual server agents based at least partially on the number of data streams available to each of the virtual server agents.

### Claim 2 (depends on 1)

The method of claim 1, wherein the set of virtual server agents are identified from among a subset of virtual server agents assigned to the set of virtual machines.

### Claim 3 (depends on 1)

The method of claim 1, further comprising accessing metadata for each virtual machine from the set of virtual machines,

### Claim 4 (depends on 3)

The method of claim 3, wherein said distributing is based at least partially on the metadata for each of the virtual machines.

### Claim 5 (depends on 1)

The method of claim 1, wherein said distributing is based on a round-robin allocation of the set of virtual machines.

### Claim 6 (depends on 1)

The method of claim 1, wherein the number of data streams available to each virtual server agent is based at least partially on a number of communication channels between the virtual server agent and a set of media agents included in the secondary storage system.

### Claim 7 (depends on 1)

The method of claim 1, wherein said distributing is based at least partially on a size of each virtual machine from the set of virtual machines.

### Claim 8 (depends on 1)

The method of claim 1, further comprising accessing metadata for each virtual server agent from the set of virtual server agents.

### Claim 9 (depends on 8)

The method of claim 8, wherein said distributing is based at least partially on the metadata for each virtual server agent.

### Claim 10 (depends on 1)

The method of claim 1, further comprising backing up the set of virtual machines to the secondary storage system via the set of virtual server agents.

### Claim 11 (depends on 1)

The method of claim 1, wherein each data stream comprises a data connection between a virtual server agent and a media agent included in the secondary storage system.

### Claim 12

A system for virtual server agent load balancing, the system comprising:
a virtual server agent coordinator comprising computer hardware, the virtual server agent coordinator configured to:
identify a set of virtual machines for backup to a secondary storage system, the set of virtual machines hosted by a set of virtual machine provider systems, the set of virtual machine provider systems included in a primary storage system;
identify a set of virtual server agents available to backup data from the set of virtual machines to the secondary storage system;
determine a number of data streams available to each virtual server agent from the set of virtual server agents; and
distribute the set of virtual machines among the set of virtual server agents based at least partially on the number of data streams available to each of the virtual server agents

### Claim 13 (depends on 12)

The system of claim 12, wherein the set of virtual server agents are identified from among a subset of virtual server agents assigned to the set of virtual machines.

### Claim 14 (depends on 12)

The system of claim 12, wherein the virtual server agent coordinator is further configured to access metadata for each virtual machine from the set of virtual machines, and wherein the virtual server agent coordinator is further configured to distribute the set of virtual machines based at least partially on the metadata.

### Claim 15 (depends on 12)

The system of claim 12, wherein the number of data streams available to each virtual server agent is based at least partially on a number of communication channels between the virtual server agent and a set of media agents included in the secondary storage system.

### Claim 16 (depends on 12)

The system of claim 12, wherein the virtual server agent coordinator is further configured to distribute the set of virtual machines based at least partially on a size of each virtual server agent form the set of virtual server agents.

### Claim 17 (depends on 12)

The system of claim 12, wherein the virtual server agent coordinator is further configured to access metadata for each virtual server agent from the set of virtual server agents and wherein the virtual server agent coordinator is further configured to distribute the set of virtual machines based at least partially on the metadata.

### Claim 18 (depends on 12)

The system of claim 12, wherein the virtual server agent coordinator is further configured to cause the set of virtual server agents to backup the set of virtual machines.

### Claim 19 (depends on 18)

The system of claim 18, wherein the virtual server agent coordinator causes the set of virtual server agents to backup the set of virtual machines based on an automated backup schedule.

### Claim 20 (depends on 12)

The system of claim 12, wherein the virtual server agent coordinator is further configured to distribute the set of virtual machines based at least partially on a weight associated with each virtual machine.
