IP Library Granted Patent US 11,003,504
Granted Patent B2
US 11,003,504 · App. 16/456,367 · Granted May 11, 2021

Scaling virtualization resource units of applications

Inventors: Venkatesh Prabhakar (Saratoga, CA); Sachin Jain (Fremont, CA); Anubhav Gupta (Sunnyvale, CA); Anirvan Duttagupta (San Jose, CA)
Assignee: Cohesity, Inc.
G06F9/5077G06F9/45558G06F9/4881G06F9/5038G06F2009/4557
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 11,003,504
App. No.
16/456,367
Granted
May 11, 2021
Kind
B2
Abstract

System resource utilizations by one or more core functionalities of a data storage system is monitored. A system resource allocation for one or more applications of the data storage system is determined based at least in part on the monitored system resource utilizations. A number of virtualization resource units allocated to at least one of the one or more applications is scaled based at least in part on the determined system resource allocation. The number of virtualization resource units allocated to the at least one of the one or more applications is based on a corresponding ratio associated with the at least one of the one or more applications.

Claims (47)

1. A method, comprising:

monitoring system resource utilizations by one or more core functionalities of a data storage system;

based at least in part on the monitored system resource utilizations, determining a system resource allocation for one or more applications of the data storage system, wherein the one or more applications includes a first application that is comprised of a plurality of layers, wherein each layer of the plurality of layers of the first application is comprised of one or more corresponding virtualization resource units, wherein the one or more corresponding virtualization resource units at each of the plurality of layers of the first application is expressed as a resource ratio; and

based at least in part on the determined system resource allocation, scaling a number of virtualization resource units allocated to the first application to maintain the resource ratio of the first application, wherein the number of virtualization resource units allocated to the first application is based on a multiple of the resource ratio of the first application, wherein scaling the number of virtualization resource units allocated to the first application comprises increasing or decreasing a total number of the one or more corresponding virtualization resource units associated with each of the plurality of layers of the first application to maintain the resource ratio of the first application.

2. The method of claim 1 , wherein the virtualization resource units are virtual machines.

3. The method of claim 1 , wherein the virtualization resource units are virtualization containers.

4. The method of claim 1 , wherein scaling the number of virtualization resource units allocated to the first application comprises:

receiving a request to launch the first application;

determining a priority associated with the first application; and

scaling the first application based on the determined priority.

5. The method of claim 4 , wherein the priority associated with the first application is based on a total amount of resources needed to scale the first application at least one of the one or more applications.

6. The method of claim 4 , wherein the priority associated with the first application is based on application type.

7. The method of claim 1 , wherein each of the one or more applications is associated with a corresponding default amount of resources.

8. The method of claim 1 , wherein determining the system resource allocation for the one or more applications of the data storage system further comprises:

determining a total amount of available resources for the data storage system; and

determining an amount of resources needed for the one or more core functionalities of the data storage system, wherein the system resource allocation for the one or more applications is based on the determined total amount of available resources for the data storage system and the determined amount of resources needed for the one or more core functionalities of the data storage system.

9. The method of claim 1 , wherein scaling the number of virtualization resource units allocated to the first application comprises:

determining that a surplus of resources is available for the one or more applications;

selecting the first application from the one or more applications; and

scaling the first application based on whether the surplus of resources is sufficient to scale the first application based on the resource ratio associated with the first application.

10. The method of claim 1 , further comprising scaling the number of virtualization resource units allocated to the first application and one or more other applications including:

determining that a surplus of resources is available for the first application and the one or more other applications;

allocating the surplus of resources among the first application and the one or more other applications; and

scaling the first application and the one or more other applications based on the allocated surplus of resources.

11. The method of claim 1 , wherein scaling the number of virtualization resource units allocated to the first application comprises:

receiving a request to launch the first application of the one or more applications;

provisioning a first amount of resources for the first application; and

allocating a second amount of resources for the first application.

12. The method of claim 11 , wherein a scaled version of the first application is comprised of a plurality of additional virtualization resource units, wherein the plurality of additional virtualization resource units are hosted on a same storage node as the plurality of virtualization resource units of the first application.

13. The method of claim 11 , wherein a scaled version of the first application is comprised of a plurality of additional virtualization resource units, wherein the plurality of additional virtualization resource units are hosted on one or more different storage nodes than one or more storage nodes hosting the first application.

14. The method of claim 1 , wherein the data storage system is comprised of a plurality of storage nodes, wherein the first application of the one or more applications is comprised of a plurality of virtualization resource units.

15. The method of claim 14 , wherein the plurality of virtualization resource units are hosted across one or more of the plurality of storage nodes.

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

monitoring system resource utilizations by one or more core functionalities of a data storage system;

based at least in part on the monitored system resource utilizations, determining a system resource allocation for one or more applications of the data storage system, wherein the one or more applications includes a first application that is comprised of a plurality of layers, wherein each layer of the plurality of layers of the first application is comprised of one or more corresponding virtualization resource units, wherein the one or more corresponding virtualization resource units at each of the plurality of layers of the first application is expressed as a resource ratio; and

based at least in part on the determined system resource allocation, scaling a number of virtualization resource units allocated to the first application to maintain the resource ratio of the first application, wherein the number of virtualization resource units allocated to the first application is based on a multiple of the resource ratio of the first application, wherein scaling the number of virtualization resource units allocated to the first application comprises increasing or decreasing a total number of the one or more corresponding virtualization resource units associated with each of the plurality of layers of the first application to maintain the resource ratio of the first application.

17. The computer program product of claim 16 , wherein scaling the number of virtualization resource units allocated to the first application comprises:

receiving a request to launch the first application;

determining a priority associated with the first application; and

scaling the first application based on the determined priority.

18. The computer program product of claim 16 , wherein the virtualization resource units are virtual machines or virtualization containers.

19. A system, comprising:

a processor configured to:

monitor system resource utilizations by one or more core functionalities of a data storage system;

based at least in part on the monitored system resource utilizations, determine a system resource allocation for one or more applications of the data storage system, wherein the one or more applications includes a first application that is comprised of a plurality of layers, wherein each layer of the plurality of layers of the first application is comprised of one or more corresponding virtualization resource units, wherein the one or more corresponding virtualization resource units at each of the plurality of layers of the first application is expressed as a resource ratio; and

based at least in part on the determined system resource allocation, scale a number of virtualization resource units allocated to the first application to maintain the resource ratio of the first application, wherein the number of virtualization resource units allocated to the first application is based on a multiple of the resource ratio of the first application, wherein to scale the number of virtualization resource units allocated to the first application, the processor is configured to increase or decrease a total number of the one or more corresponding virtualization resource units associated with each of the plurality of layers of the first application to maintain the resource ratio of the first application; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2019
From: PRABHAKAR, VENKATESH; JAIN, SACHIN; GUPTA, ANUBHAV; DUTTAGUPTA, ANIRVAN
To: COHESITY, INC.
Reel/Frame 049961/0611 →
Continuity (1)
Related Publication 20200409767A1 · Dec 31, 2020
Cited By (2)
US 12,422,984 US 12,645,576