IP Library Granted Patent US 10,248,347
Granted Patent B2
US 10,248,347 · App. 15/092,363 · Granted Apr 2, 2019

Auto allocation of storage system resources to heterogeneous categories of resource consumer

Inventors: Sumedh V. Sakdeo (San Jose, CA); Edward K. Lee (Dublin, CA); Brandon W. Salmon (Menlo Park, CA)
Assignee: Tintri by DDN, Inc.
G06F3/0631G06F3/0604G06F3/0605G06F3/067G06F3/0644G06F3/0659G06F3/0664G06F3/0673G06F9/45558G06F12/00G06F2009/45579G06F2009/45583
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,248,347
App. No.
15/092,363
Granted
Apr 2, 2019
Kind
B2
Abstract

Techniques to automatically allocate resources among storage system resource consumers are disclosed. In various embodiments, for each of a plurality of heterogeneous categories of resource consumer of the storage system a corresponding allocated portion of storage system resources to be available for use to perform operations associated with that category of resource consumer is determined. A storage system is configured automatically to provide access to resources of the storage system based at least in part on the respective portions of storage system resources allocated to each category of resource consumer, including by ensuring availability to workloads associated with each category at any given time at least a minimum amount of storage system resources corresponding to the portion of storage system resources allocated to that category.

Claims (25)

1. A storage system, comprising:

a processor configured to:

develop virtual machine awareness for the storage system including by extracting virtual machine identifier information associated with file creation, wherein the awareness includes tracking relationships between files and virtual machines;

programmatically determine for each of a plurality of heterogeneous categories of resource consumer of the storage system a corresponding allocated portion of storage system resources to be available for use to perform operations associated with that category of resource consumer, wherein said categories of resource consumer include two or more categories of virtual machine including categories of virtual machine having different quality of service requirements;

provide access to resources of the storage system based at least in part on allocation of respective portions of storage system resources to each category of resource consumer and respective maximum resource requirements associated with virtual machines comprising one or more of said categories of virtual machine, including by allocating availability of storage system resources to workloads associated with each category such that at any given time at least a minimum amount of storage system resources corresponding to the portion of storage system resources is allocated to that category; and

enforce said respective maximum resource requirements at least in part by throttling sending of acknowledgments of completion of requests associated with the virtual machines in said categories of virtual machine having such maximum resource requirements; and

a memory coupled to the processor and configured to store data reflecting the portion of storage system resources allocated to each category of resource consumer.

2. The storage system of claim 1 , wherein the processor is configured to provide access to resources based at least in part on respective minimum resource requirements associated with virtual machines comprising one or more of said categories of virtual machine.

3. The storage system of claim 1 , wherein one or more of said categories of resource consumer comprise internal storage system operations of said storage system.

4. The storage system of claim 3 , wherein one or more of said categories of resource consumer comprise external consumers configured to send storage system requests to said storage system, and wherein the processor is configured to determine resource allocations for both internal categories of consumer and for said external categories of consumer.

5. The storage system of claim 4 , wherein said external categories of consumer comprise categories of virtual machine, and wherein the processor is configured to treat said internal categories of consumer at least in part as internal virtual machines.

6. The storage system of claim 1 , wherein the processor is configured to provide to resource consumers in a first category of consumer access to storage system resources beyond a first allocated portion of resources that has been allocated to the first category of consumer, based at least in part on a determination that consumers in a second category of consumer are not currently fully utilizing a second allocated portion of resources that has been allocated to the second category of consumer.

7. A method, comprising:

developing virtual machine awareness for a storage system including by extracting virtual machine identifier information associated with file creation, wherein the awareness includes tracking relationships between files and virtual machines;

determining programmatically for each of a plurality of heterogeneous categories of resource consumer of a storage system a corresponding allocated portion of storage system resources to be available for use to perform operations associated with that category of resource consumer, wherein said categories of resource consumer include two or more categories of virtual machine including categories of virtual machine having different quality of service requirements;

programmatically configuring a storage system to provide access to resources of the storage system based at least in part on allocation of respective portions of storage system resources to each category of resource consumer and respective maximum resource requirements associated with virtual machines comprising one or more of said categories of virtual machine, including by allocating availability of storage system resources to workloads associated with each category such that at any given time at least a minimum amount of storage system resources corresponding to the portion of storage system resources is allocated to that category; and

enforcing said respective maximum resource requirements at least in part by throttling sending of acknowledgments of completion of requests associated with the virtual machines in said categories of virtual machine having such maximum resource requirements.

8. The method of claim 7 , wherein the storage system is configured to provide access to resources based at least in part on respective minimum resource requirements associated with virtual machines comprising one or more of said categories of virtual machine.

9. The method of claim 7 , wherein one or more of said categories of resource consumer comprise internal storage system operations of said storage system.

10. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

developing virtual machine awareness for a storage system including by extracting virtual machine identifier information associated with file creation, wherein the awareness includes tracking relationships between files and virtual machines;

programmatically determining for each of a plurality of heterogeneous categories of resource consumer of a storage system a corresponding allocated portion of storage system resources to be available for use to perform operations associated with that category of resource consumer, wherein said categories of resource consumer include two or more categories of virtual machine including categories of virtual machine having different quality of service requirements;

configuring a storage system to provide access to resources of the storage system based at least in part on allocation of respective portions of storage system resources to each category of resource consumer and respective maximum resource requirements associated with virtual machines comprising one or more of said categories of virtual machine, including by allocating availability of storage system resources to workloads associated with each category such that at any given time at least a minimum amount of storage system resources corresponding to the portion of storage system resources is allocated to that category; and

enforcing said respective maximum resource requirements at least in part by throttling sending of acknowledgments of completion of requests associated with the virtual machines in said categories of virtual machine having such maximum resource requirements.

11. The computer program product of claim 10 , wherein one or more of said categories of resource consumer comprise internal storage system operations of said storage system.

Assignments (6)
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 →
SECURITY INTEREST Recorded May 1, 2018
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 045678/0015 →
SECOND AMENDMENT TO SECURITY AGREEMENT Recorded May 1, 2017
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 042380/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2016
From: SAKDEO, SUMEDH V.; LEE, EDWARD K.; SALMON, BRANDON W.
To: TINTRI INC.
Reel/Frame 038961/0549 →
Continuity (2)
Provisional Application 62144518 · Apr 8, 2015
Related Publication 20170003906A1 · Jan 5, 2017