IP Library Granted Patent US 9,632,812
Granted Patent B1
US 9,632,812 · App. 14/709,332 · Granted Apr 25, 2017

Collecting data associated with virtual machines from various data sources

Inventors: Mark G. Gritter (Eagan, MN); Umesh Patil (Cupertino, CA); William Lim (Fremont, CA)
Assignee: Trintri Inc.
G06F9/45558G06F2009/45562G06F2009/45591
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 9,632,812
App. No.
14/709,332
Granted
Apr 25, 2017
Kind
B1
Abstract

Collecting data associated with virtual machines from various data sources is disclosed, including: collecting data associated with a virtual machine from a data source of virtual machine data, where the data associated with the virtual machine is not currently tracked by a hypervisor; determining a set of related data associated with the virtual machine based at least in part on the data associated with the virtual machine collected from the data source of virtual machine data; storing associating data that associates the set of related data associated with the virtual machine; and providing access to the set of related data associated with the virtual machine based at least in part on the associating data.

Claims (51)

1. A system, comprising:

a processor configured to:

collect a first set of data associated with a plurality of virtual machines from a plurality of non-hypervisor data sources of virtual machine data, wherein the first set of data associated with the plurality of virtual machines is not currently tracked by a hypervisor, wherein the first set of data associated with the plurality of virtual machines that is not currently tracked by the hypervisor comprises data that has been removed from an inventory associated with the hypervisor;

collect a second set of data associated with the plurality of virtual machines from a hypervisor data source of virtual machine data;

create a set of related data associated with a virtual machine among the plurality of virtual machines based at least in part on combining at least a portion of the first set of data associated with the plurality of virtual machines collected from the plurality of non-hypervisor data sources of virtual machine data and at least a portion of the second set of data associated with the plurality of virtual machines collected from the hypervisor data source of virtual machine data;

store associating data that associates the set of related data associated with the virtual machine;

present, at a user interface, the set of related data associated with the virtual machine based at least in part on the associating data;

determine storage space utilized by the virtual machine based on the set of related data associated with the virtual machine; and

perform at least one of cloning, deletion, and migration of at least a portion of the virtual machine based at least in part on the utilized storage space; and

a storage device coupled to the processor and configured to store the set of related data associated with the virtual machine.

2. The system of claim 1 , wherein the first set of data associated with the plurality of virtual machines comprises snapshot data.

3. The system of claim 1 , wherein the first set of data associated with the plurality of virtual machines comprises replica data.

4. The system of claim 1 , wherein the first set of data associated with the plurality of virtual machines comprises shared disk data.

5. The system of claim 1 , wherein the first set of data associated with the plurality of virtual machines comprises abandoned data.

6. The system of claim 1 , wherein the plurality of non-hypervisor data sources of virtual machine data comprises a first non-hypervisor data source of virtual machine data and wherein the processor is further configured to collect data associated with the plurality of virtual machines from a second non-hypervisor data source of virtual machine data.

7. The system of claim 6 , wherein to create the set of related data associated with the virtual machine includes to merge data associated with the virtual machine that is collected from the first non-hypervisor data source of virtual machine data and data associated with the virtual machine that is collected from the second non-hypervisor data source of virtual machine data into the set of related data.

8. The system of claim 7 , wherein to merge the data associated with the virtual machine that is collected from the first non-hypervisor data source of virtual machine data and the data associated with the virtual machine that is collected from the second non-hypervisor data source of virtual machine data into the set of related data comprises to:

determine that data associated with a first data type from the first non-hypervisor data source conflicts with data associated with a second data type from the second non-hypervisor data source; and

maintain one of the data associated with the first data type from the first non-hypervisor data source and the data associated with the second data type from the second non-hypervisor data source based at least in part on stored data type preference data.

9. The system of claim 1 , wherein the first set of data associated with the plurality of virtual machines includes at least one of a static attribute associated with the virtual machine and a dynamic attribute associated with the virtual machine.

10. The system of claim 1 , wherein the plurality of non-hypervisor data sources of virtual machine data comprises one or more of the following: a filesystem of a storage system, stored snapshot data, incoming replication information, a configuration management tool of the storage system, an orchestration service of the storage system, and a local cache of the storage system.

11. A method, comprising:

collecting a first set of data associated with a plurality of virtual machines from a plurality of non-hypervisor data sources of virtual machine data, wherein the first set of data associated with the plurality of virtual machines is not currently tracked by a hypervisor, wherein the first set of data associated with the plurality of virtual machines that is not currently tracked by the hypervisor comprises data that has been removed from an inventory associated with the hypervisor;

collecting a second set of data associated with the plurality of virtual machines from a hypervisor data source of virtual machine data;

creating a set of related data associated with a virtual machine among the plurality of virtual machines based at least in part on combining at least a portion of the first set of data associated with the plurality of virtual machines collected from the plurality of non-hypervisor data sources of virtual machine data and at least a portion of the second set of data associated with the plurality of virtual machines collected from the hypervisor data source of virtual machine data;

storing associating data that associates the set of related data associated with the virtual machine;

presenting, at a user interface, the set of related data associated with the virtual machine based at least in part on the associating data;

determining storage space utilized by the virtual machine based on the set of related data associated with the virtual machine; and

performing at least one of cloning, deletion, and migration of at least a portion of the virtual machine based at least in part on the utilized storage space.

12. The method of claim 11 , wherein the plurality of non-hypervisor data sources of virtual machine data comprises a first non-hypervisor data source of virtual machine data and further comprising collecting data associated with the plurality of virtual machines from a second non-hypervisor data source of virtual machine data.

13. The method of claim 12 , wherein creating the set of related data associated with the virtual machine includes merging data associated with the virtual machine that is collected from the first non-hypervisor data source of virtual machine data and data associated with the virtual machine that is collected from the second non-hypervisor data source of virtual machine data into the set of related data.

14. The method of claim 13 , wherein merging the data associated with the virtual machine that is collected from the first non-hypervisor data source of virtual machine data and the data associated with the virtual machine that is collected from the second non-hypervisor data source of virtual machine data into the set of related data comprises:

determining that data associated with a first data type from the first non-hypervisor data source conflicts with data associated with a second data type from the second non-hypervisor data source; and

maintaining one of the data associated with the first data type from the first non-hypervisor data source and the data associated with the second data type from the second non-hypervisor data source based at least in part on stored data type preference data.

15. The method of claim 11 , wherein the first set of data associated with the plurality of virtual machines includes at least one of a static attribute associated with the virtual machine and a dynamic attribute associated with the virtual machine.

16. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

collecting a first set of data associated with a plurality of virtual machines from a plurality of non-hypervisor data sources of virtual machine data, wherein the first set of data associated with the plurality of virtual machines is not currently tracked by a hypervisor, wherein the first set of data associated with the plurality of virtual machines that is not currently tracked by the hypervisor comprises data that has been removed from an inventory associated with the hypervisor;

collecting a second set of data associated with the plurality of virtual machines from a hypervisor data source of virtual machine data;

creating a set of related data associated with a virtual machine among the plurality of virtual machines based at least in part on combining at least a portion of the first set of data associated with the plurality of virtual machines collected from the plurality of non-hypervisor data sources of virtual machine data and at least a portion of the second set of data associated with the plurality of virtual machines collected from the hypervisor data source of virtual machine data;

storing associating data that associates the set of related data associated with the virtual machine;

presenting, at a user interface, the set of related data associated with the virtual machine based at least in part on the associating data;

determining storage space utilized by the virtual machine based on the set of related data associated with the virtual machine; and

performing at least one of cloning, deletion, and migration of at least a portion of the virtual machine based at least in part on the utilized storage space.

17. The system of claim 1 , wherein to create the set of related data associated with the virtual machine based at least in part on the first set of data associated with the plurality of virtual machines collected from the plurality of non-hypervisor data sources of virtual machine data and the second set of data associated with the plurality of virtual machines collected from the hypervisor data source of virtual machine data comprises to merge together the first set of data associated with the plurality of virtual machines and the second set of data associated with the plurality of virtual machines.

18. The system of claim 17 , wherein to merge together the first set of data associated with the plurality of virtual machines and the second set of data associated with the plurality of virtual machines comprises to:

determine that a first portion of data associated with the first set of data associated with the virtual machine conflicts with a second portion of data associated with the second set of data associated with the virtual machine; and

maintain one of the first portion of data associated with the first set of data and the second portion of data associated with the second set of data based at least in part on stored data type preference data.

19. The method of claim 11 , wherein creating the set of related data associated with the virtual machine based at least in part on the first set of data associated with the plurality of virtual machines collected from the plurality of non-hypervisor data sources of virtual machine data and the second set of data associated with the plurality of virtual machines collected from the hypervisor data source of virtual machine data comprises merging together the first set of data associated with the plurality of virtual machines and the second set of data associated with the plurality of virtual machines.

20. The method of claim 19 , wherein merging together the first set of data associated with the plurality of virtual machines and the second set of data associated with the plurality of virtual machines comprises:

determining that a first portion of data associated with the first set of data associated with the virtual machine conflicts with a second portion of data associated with the second set of data associated with the virtual machine; and

maintaining one of the first portion of data associated with the first set of data and the second portion of data associated with the second set of data based at least in part on stored data type preference data.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO REMOVE APPLICATION NUMBER 14778982 PREVIOUSLY RECORDED AT REEL: 042380 FRAME: 0377. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Jul 14, 2017
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 043247/0727 →
FIRST AMENDMENT TO SECURITY AGREEMENT Recorded May 1, 2017
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 042380/0377 →
SECURITY INTEREST Recorded May 16, 2016
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 038711/0505 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2015
From: GRITTER, MARK G.; PATIL, UMESH; LIM, WILLIAM
To: TINTRI INC.
Reel/Frame 036390/0854 →
Continuity (1)
Provisional Application 61991995 · May 12, 2014