IP Library Granted Patent US 8,307,177
Granted Patent B2
US 8,307,177 · App. 12/553,294 · Granted Nov 6, 2012

Systems and methods for management of virtualization data

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 8,307,177
App. No.
12/553,294
Granted
Nov 6, 2012
Kind
B2
Abstract

Described in detail herein is a method of copying data of one or more virtual machines being hosted by one or more non-virtual machines. The method includes receiving an indication that specifies how to perform a copy of data of one or more virtual machines hosted by one or more virtual machine hosts. The method may include determining whether the one or more virtual machines are managed by a virtual machine manager that manages or facilitates management of the virtual machines. If so, the virtual machine manager is dynamically queried to automatically determine the virtual machines that it manages or that it facilitates management of. If not, a virtual machine host is dynamically queried to automatically determine the virtual machines that it hosts. The data of each virtual machine is then copied according to the specifications of the received indication.

Claims (91)

1. A method of performing storage operations on data of virtual machines in a heterogeneous computing environment that includes virtual machines and non-virtual machines, wherein the method is performed by one or more computing systems, each computing system having a processor and memory, the method comprising:

automatically detecting, by the one or more computing systems, two or more virtual machines in a heterogeneous computing environment that includes virtual machines and non-virtual machines,

wherein the two or more virtual machines include at least two virtual machines running different types of operating systems,

wherein automatically detecting two or more virtual machines includes automatically performing at least one of the following:

(a) accessing a virtual machine host that hosts one or more virtual machines, and

determining, from information provided by the virtual machine host, the one or more virtual machines hosted by the virtual machine host;

(b) accessing a virtual machine manager that manages one or more virtual machines and

determining, from information provided by the virtual machine manager, the one or more virtual machines managed by the virtual machine manager; and

(c) determining a set of member machines in the heterogeneous computing environment,

wherein each member machine may be either a virtual machine or a non-virtual machine,

querying each member machine in the set to determine if it is a virtual machine, and

based upon its response to the query, determining if it is a virtual machine;

associating a storage policy with at least one of the detected virtual machines running a first operating system and at least one of the detected virtual machines running a second operating system,

wherein the second operating system is a different type of operating system from the first operating system,

wherein the storage policy includes a set of criteria associated with performing a file-level storage operation on the data of the at least one virtual machine running the first operating system and the data of the at least one virtual machine running the second operating system, and

wherein the storage policy is also associated with at least one non-virtual machine in the heterogeneous computing environment;

receiving an indication to perform a storage operation in accordance with the set of criteria specified in the storage policy; and

performing the file-level storage operation on the data of the at least one virtual machine running the first operating system and the data of the at least one virtual machine running the second operating system in accordance with the set of criteria specified in the storage policy.

2. The method of claim 1 , wherein receiving an indication to perform the storage operation includes receiving the indication from a storage manager that controls storage operations performed on data of virtual machines and non-virtual machines in the heterogeneous computing environment, wherein the data of the at least one virtual machine is a primary copy of the data, and wherein performing the storage operation specified by the storage policy includes copying at least some of the primary copy of the data of the at least one virtual machine to a storage device that stores secondary copies of data of virtual machines and non-virtual machines.

3. The method of claim 1 , wherein the data of the at least one virtual machine is a primary copy of the data, performing a storage operation on the data of the at least one virtual machine includes creating a secondary copy of the data, and wherein the method further comprises:

indexing the secondary copy of the data; and

storing the indexed data in an index, wherein the index also includes data associated with at least one non-virtual machine.

4. The method of claim 1 , wherein the data of the at least one virtual machine is a primary copy of the data, performing a storage operation on the data of the at least one virtual machine includes creating a secondary copy of the data, and wherein the method further comprises:

indexing the secondary copy of the data;

storing the indexed data in an index, wherein the index also includes data associated with at least one non-virtual machine;

receiving a request to query the index; and

returning search results responsive to the request, wherein the search results include search results associated with data of the least one virtual machine and at least one non-virtual machine.

5. The method of claim 1 , wherein performing the storage operation on the data of the at least one virtual machine includes receiving a set of data objects, and wherein the method further comprises, for each of the data objects in the set:

generating a substantially unique identifier for the data object;

determining, based on the substantially unique identifier, if an instance of the data object has already been stored on a storage device; and

if an instance of the data object has not already been stored on the storage device, then storing the data object on the storage device.

6. A computer-readable storage medium storing instructions, that when executed by one or more computing systems perform storage operations on data of virtual machines in a heterogeneous computing environment that includes virtual machines and non-virtual machines, wherein each computing system has a processor and memory, comprising:

automatically detecting, by the one or more computing systems, two or more virtual machines in a heterogeneous computing environment that includes virtual machines and non-virtual machines,

wherein the two or more virtual machines include at least two virtual machines running different types of operating systems,

wherein automatically detecting two or more virtual machines includes automatically performing at least one of the following:

a) accessing a virtual machine host that hosts one or more virtual machines, and

determining, from information provided by the virtual machine host, the one or more virtual machines hosted by the virtual machine host;

b) accessing a virtual machine manager that manages one or more virtual machines and

determining, from information provided by the virtual machine manager, the one or more virtual machines managed by the virtual machine manager; and

c) determining a set of member machines in the heterogeneous computing environment,

wherein each member machine may be either a virtual machine or a non-virtual machine,

querying each member machine in the set to determine if it is a virtual machine, and

based upon its response to the query, determining if it is a virtual machine;

associating a storage policy with at least one of the detected virtual machines running a first operating system and at least one of the detected virtual machines running a second operating system,

wherein the second operating system is a different type of operating system from the first operating system,

wherein the storage policy includes a set of criteria associated with performing a file-level storage operation on the data of the at least one virtual machine running the first operating system and the data of the at least one virtual machine running the second operating system, and

wherein the storage policy is also associated with at least one non-virtual machine in the heterogeneous computing environment;

receiving an indication to perform a storage operation in accordance with the set of criteria specified in the storage policy; and

performing the file-level storage operation on the data of the at least one virtual machine running the first operating system and the data of the at least one virtual machine running the second operating system in accordance with the set of criteria specified in the storage policy.

7. The computer-readable storage medium of claim 6 , wherein receiving an indication to perform the storage operation includes receiving the indication from a storage manager that controls storage operations performed on data of virtual machines and non-virtual machines in the heterogeneous computing environment, wherein the data of the at least one virtual machine is a primary copy of the data, and wherein performing the storage operation specified by the storage policy includes copying at least some of the primary copy of the data of the at least one virtual machine to a storage device that stores secondary copies of data of virtual machines and non-virtual machines.

8. The computer-readable storage medium of claim 6 , wherein the data of the at least one virtual machine is a primary copy of the data, performing a storage operation on the data of the at least one virtual machine includes creating a secondary copy of the data, and wherein the method further comprises:

indexing the secondary copy of the data; and

storing the indexed data in an index, wherein the index also includes data associated with at least one non-virtual machine.

9. The computer-readable storage medium of claim 6 , wherein the data of the at least one virtual machine is a primary copy of the data, performing a storage operation on the data of the at least one virtual machine includes creating a secondary copy of the data, and wherein the method further comprises:

indexing the secondary copy of the data;

storing the indexed data in an index, wherein the index also includes data associated with at least one non-virtual machine;

receiving a request to query the index; and

returning search results responsive to the request, wherein the search results include search results associated with data of the least one virtual machine and at least one non-virtual machine.

10. The computer-readable storage medium of claim 6 , wherein performing the storage operation on the data of the at least one virtual machine includes receiving a set of data objects, and further comprising, for each of the data objects in the set:

generating a substantially unique identifier for the data object;

determining, based on the substantially unique identifier, if an instance of the data object has already been stored on a storage device; and

if an instance of the data object has not already been stored on the storage device, then storing the data object on the storage device.

11. A system configured to perform storage operations on data of virtual machines in a heterogeneous computing environment that includes virtual machines and non-virtual machines, comprising:

means for automatically detecting two or more virtual machines in a heterogeneous computing environment that includes virtual machines and non-virtual machines,

wherein the two or more virtual machines include at least two virtual machines running different types of operating systems,

wherein the means for automatically detecting two or more virtual machines includes at least one of the following:

a) means for accessing a virtual machine host that hosts one or more virtual machines, and

means for determining, from information provided by the virtual machine host, the one or more virtual machines hosted by the virtual machine host;

b) means for accessing a virtual machine manager that manages one or more virtual machines and

means for determining, from information provided by the virtual machine manager, the one or more virtual machines managed by the virtual machine manager; and

c) means for determining a set of member machines in the heterogeneous computing environment, wherein each member machine may be either a virtual machine or a non-virtual machine,

means for querying each member machine in the set to determine if it is a virtual machine, and

means for based upon its response to the query, determining if it is a virtual machine;

means for associating a storage policy with at least one of the detected virtual machines running a first operating system and at least one of the detected virtual machines running a second operating system, wherein the second operating system is a different type of operating system from the first operating system,

wherein the storage policy includes a set of criteria associated with performing a file-level storage operation on the data of the at least one virtual machine running the first operating system and the data of the at least one virtual machine running the second operating system, and

wherein the storage policy is also associated with at least one non-virtual machine in the heterogeneous computing environment;

means for receiving an indication to perform a storage operation in accordance with the set of criteria specified in the storage policy; and

means for performing the file-level storage operation on the data of the at least one virtual machine running the first operating system and the data of the at least one virtual machine running the second operating system in accordance with the set of criteria specified in the storage policy.

12. The system of claim 11 , wherein the means for receiving an indication to perform the storage operation includes means for receiving the indication from a storage manager that controls storage operations performed on data of virtual machines and non-virtual machines in the heterogeneous computing environment, wherein the data of the at least one virtual machine is a primary copy of the data, and wherein performing the storage operation specified by the storage policy includes copying at least some of the primary copy of the data of the at least one virtual machine to a storage device that stores secondary copies of data of virtual machines and non-virtual machines.

13. The system of claim 11 , wherein the data of the at least one virtual machine is a primary copy of the data, wherein the means for performing a storage operation on the data of the at least one virtual machine includes means for creating a secondary copy of the data, and wherein the method further comprises:

means for indexing the secondary copy of the data; and

means for storing the indexed data in an index, wherein the index also includes data associated with at least one non-virtual machine.

14. The system of claim 11 , wherein the data of the at least one virtual machine is a primary copy of the data, wherein the means for performing a storage operation on the data of the at least one virtual machine includes means for creating a secondary copy of the data, and wherein the method further comprises:

means for indexing the secondary copy of the data;

means for storing the indexed data in an index, wherein the index also includes data associated with at least one non-virtual machine;

means for receiving a request to query the index; and

means for returning search results responsive to the request, wherein the search results include search results associated with data of the least one virtual machine and at least one non-virtual machine.

15. The system of claim 11 , wherein performing the storage operation on the data of the at least one virtual machine includes means for receiving a set of data objects, and wherein the system further comprises:

means for generating a substantially unique identifier for the data object;

means for determining, based on the substantially unique identifier, if an instance of the data object has already been stored on a storage device; and

means for storing the data object on the storage device if an instance of the data object has not already been stored on the storage device.

Assignments (5)
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 →
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2021
From: BANK OF AMERICA, N.A.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054913/0905 →
SECURITY INTEREST Recorded Jul 2, 2014
From: COMMVAULT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033266/0678 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2009
From: PRAHLAD, ANAND; PAWAR, RAHUL S.; VARADHARAJAN, PRAKASH; BEDADALA, PAVAN KUMAR REDDY
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 023189/0108 →