IP Library Granted Patent US 10,652,329
Granted Patent B1
US 10,652,329 · App. 14/709,341 · Granted May 12, 2020

Cluster virtual machines

Inventors: Mark G. Gritter (Eagan, MN); Umesh Patil (Cupertino, CA)
Assignee: Tintri by DDN, Inc.
H04L67/1097G06F9/45558H04L67/1095G06F2009/45595
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 10,652,329
App. No.
14/709,341
Granted
May 12, 2020
Kind
B1
Abstract

Aggregating data associated with cluster virtual machines is disclosed, including obtaining from a plurality of storage systems a plurality of values associated with an attribute associated with a cluster virtual machine (VM); and aggregating the plurality of values associated with the attribute based at least in part on an aggregation semantic associated with the attribute.

Claims (61)

1. A system, comprising:

a processor configured to:

request a first value and a second value each associated with an attribute of a cluster VM, wherein the cluster VM represents a state of a virtual machine distributively stored across a plurality of storage systems and a first portion of the cluster VM is stored at a first storage system included in the plurality of storage systems and a second portion of the cluster VM is stored at a second storage system included in the plurality of storage systems;

receive the first value from the first storage system and the second value from the second storage system, wherein the first value is associated with the first portion of the cluster VM and the second value is associated with the second portion of the cluster VM;

determine an attribute of the cluster VM using the first value from the first storage system and the second value from the second storage system according to an aggregation semantic, wherein the attribute includes an association with live data currently tracked by a hypervisor and an association with synthetic data not currently tracked by the hypervisor, the determination including:

in response to a determination that there is at least one live value, discarding synthetic values, wherein a synthetic value represents a synthesized state of the cluster VM;

in response to a determination that there are no live values, discarding those values older than the newest synthetic value;

in response to a determination that the cluster VM attribute is static, determine a cluster VM attribute value by selecting one of the first value and the second value; and

in response to a determination that the cluster VM attribute is dynamic, determine the cluster VM attribute value by combining the first value and the second value; and

a memory coupled to the processor and configured to store the aggregation semantic associated with the attribute.

2. The system of claim 1 , wherein the cluster VM represents aggregated data associated with a VM across the plurality of storage systems.

3. The system of claim 1 , wherein the processor is further configured to:

determine that a third value associated with the attribute associated with the cluster VM is not obtained from an unresponsive storage system of the plurality of storage systems; and

determine an extrapolated value associated with the attribute associated with the cluster VM associated with the unresponsive storage system.

4. The system of claim 3 , wherein the extrapolated value associated with the attribute associated with the cluster VM associated with the unresponsive storage system is determined based at least in part on a historical value associated with the attribute associated with the cluster VM that was previously obtained from the unresponsive storage system.

5. The system of claim 3 , wherein the plurality of values is obtained from storage systems of the plurality of storage systems other than the unresponsive storage system and wherein to aggregate the plurality of values associated with the attribute comprises to determine a cluster value using the plurality of values and the extrapolated value.

6. The system of claim 5 , wherein the processor is further configured to:

receive a previously absent value associated with the attribute associated with the cluster VM from the unresponsive storage system; and

in response to the receipt of the previously absent value associated with the attribute associated with the cluster VM from the unresponsive storage system:

determine that the unresponsive storage system has become responsive; and

update the cluster value by removing the extrapolated value using the aggregation semantic associated with the attribute and adding the previously absent value using the aggregation semantic associated with the attribute.

7. The system of claim 5 , wherein the processor is further configured to:

determine that the unresponsive storage system has failed; and

in response to the determination that the unresponsive storage system has failed:

obtain an implied value predetermined for a failed storage system; and

update the cluster value by removing the extrapolated value using the aggregation semantic associated with the attribute and adding the implied value using the aggregation semantic associated with the attribute.

8. The system of claim 7 , wherein the unresponsive storage system is determined to have failed based on a failure to connect to the unresponsive storage system within a predetermined failure time period.

9. The system of claim 7 , wherein the implied value predetermined for the failed storage system comprises zero.

10. A method, comprising:

requesting a first value and a second value each associated with an attribute of a cluster VM, wherein the cluster VM represents a state of a virtual machine distributively stored across a plurality of storage systems and a first portion of the cluster VM is stored at a first storage system included in the plurality of storage systems and a second portion of the cluster VM is stored at a second storage system included in the plurality of storage systems; and

receiving the first value from the first storage system and the second value from the second storage system, wherein the first value is associated with the first portion of the cluster VM and the second value is associated with the second portion of the cluster VM;

determining an attribute of the cluster VM using the first value from the first storage system and the second value from the second storage system according to an aggregation semantic, wherein the attribute includes an association with live data currently tracked by a hypervisor and an association with synthetic data not currently tracked by the hypervisor, the determination including:

in response to a determination that there is at least one live value, discarding synthetic values, wherein a synthetic value represents a synthesized state of the cluster VM;

in response to a determination that there are no live values, discarding those values older than the newest synthetic value;

in response to a determination that the cluster VM attribute is static, determining a cluster VM attribute value by selecting one of the first value and the second value and

in response to a determination that the cluster VM attribute is dynamic, determining the cluster VM attribute value by combining the first value and the second value.

11. The method of claim 10 , wherein the cluster VM represents aggregated data associated with a VM across the plurality of storage systems.

12. The method of claim 10 , further comprising:

determining that a third value associated with the attribute associated with the cluster VM is not obtained from an unresponsive storage system of the plurality of storage systems; and

determining an extrapolated value associated with the attribute associated with the cluster VM associated with the unresponsive storage system.

13. The method of claim 12 , wherein the extrapolated value associated with the attribute associated with the cluster VM associated with the unresponsive storage system is determined based at least in part on a historical value associated with the attribute associated with the cluster VM that was previously obtained from the unresponsive storage system.

14. The method of claim 12 , wherein the plurality of values is obtained from storage systems of the plurality of storage systems other than the unresponsive storage system and wherein aggregating the plurality of values associated with the attribute comprises determining a cluster value using the plurality of values and the extrapolated value.

15. The method of claim 14 , further comprising:

receiving a previously absent value associated with the attribute associated with the cluster VM from the unresponsive storage system; and

in response to the receipt of the previously absent value associated with the attribute associated with the cluster VM from the unresponsive storage system:

determining that the unresponsive storage system has become responsive; and

updating the cluster value by removing the extrapolated value using the aggregation semantic associated with the attribute and adding the previously absent value using the aggregation semantic associated with the attribute.

16. The method of claim 14 , further comprising:

determining that the unresponsive storage system has failed; and

in response to the determination that the unresponsive storage system has failed:

obtaining an implied value predetermined for a failed storage system; and

updating the cluster value by removing the extrapolated value using the aggregation semantic associated with the attribute and adding the implied value using the aggregation semantic associated with the attribute.

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

requesting a first value and a second value each associated with an attribute of a cluster VM, wherein the cluster VM represents a state of a virtual machine distributively stored across a plurality of storage systems and a first portion of the cluster VM is stored at a first storage system included in the plurality of storage systems and a second portion of the cluster VM is stored at a second storage system included in the plurality of storage systems; and

receiving the first value from the first storage system and the second value from the second storage system, wherein a first value is associated with the first portion of the cluster VM and the second value is associated with the second portion of the cluster VM;

determining an attribute of the cluster VM using the first value from the first storage system and the second value from the second storage system according to an aggregation semantic, wherein the attribute includes an association with live data currently tracked by a hypervisor and an association with synthetic data not currently tracked by the hypervisor, the determination including by:

in response to a determination that there is at least one live value, discarding synthetic values, wherein a synthetic value represents a synthesized state of the cluster VM;

in response to a determination that there are no live values, discarding those values older than the newest synthetic value;

in response to a determination that the cluster VM attribute is static, determining a cluster VM attribute value by selecting one of the first value and the second value; and

in response to a determination that the cluster VM attribute is dynamic, determining the cluster VM attribute value by combining the first value and the second value.

18. The system of claim 1 , wherein each of the plurality of storage systems is configured to store at least one of: snapshot data and replica data and the cluster VM attribute is associated with data at least one of the snapshot data and the replica 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 18, 2015
From: GRITTER, MARK G.; PATIL, UMESH
To: TINTRI INC.
Reel/Frame 036348/0665 →
Continuity (1)
Provisional Application 61991995 · May 12, 2014