IP Library Granted Patent US 10,908,848
Granted Patent B2
US 10,908,848 · App. 16/167,049 · Granted Feb 2, 2021

Automated management of bundled applications

Inventors: Ashok Mishra (San Jose, CA); Ravikumar Alluboyina (Santa Clara, CA)
Assignee: ROBIN SYSTEMS, INC.
G06F3/0689G06F1/187G06F3/0629G06F3/0665G06F12/0253G06F2003/0697
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,908,848
App. No.
16/167,049
Granted
Feb 2, 2021
Kind
B2
Abstract

A new snapshot of a storage volume is created by instructing computing nodes to suppress write requests. Once pending write requests from the computing nodes are completed, storage nodes create a new snapshot for the storage volume by allocating a new segment to the new snapshot and finalizes and performs garbage collection with respect to segments allocated to the previous snapshot. An orchestration layer implements a bundled application that is provisioned with virtualized storage and computation resources. A snapshot of the bundled application may be created and used to rollback or clone the application. Clones snapshots of storage volumes may be gradually populated with data from prior snapshots to reduce loading on a primary snapshot. Chaos testing of the bundled application may be performed and storage volumes may be created, expanded, and/or moved based on usage of the bundled application.

Claims (72)

1. A method comprising:

providing a first computing device having a plurality of storage devices mounted thereto;

defining a first storage volume residing on a first storage device of the plurality of storage devices;

evaluating, by the first computing device, usage of the first storage volume;

(a) determining, by the first computing device, that usage of the first storage volume meets a first threshold condition;

in response to (a), assigning, by the first computing device, the first storage volume to both of the first storage device and a second storage device of the plurality of storage devices such that a portion of the first storage volume resides on both of the first storage device and the second storage device;

defining a storage volume limit for each storage device of the plurality of storage devices;

(b) determining, by the first computing device, that usage of one or more storage volumes assigned to the first storage device meets a second threshold condition; and

in response to (b) reducing, by the first computing device, the storage volume limit for the first storage device.

2. The method of claim 1 , wherein (a) comprises determining that a number of input/output operations (IOPs) processed for the first storage volume meets the first threshold condition.

3. The method of claim 1 , further comprising:

(b) detecting, by the first computing device, mounting of a third storage device to the first computing device; and

in response to (b), redistributing a plurality of storage volumes assigned to the first and second devices across the first, second, and third storage devices, the plurality of storage volumes including the first storage volume.

4. The method of claim 1 , further comprising:

(b) determining, by the first computing device, that usage of a second storage volume assigned to the first storage device meets a second threshold condition; and

in response to (b), performing garbage collection for storage volumes assigned to the first storage device.

5. The method of claim 1 , further comprising:

(b) determining, by the first computing device, that usage of a second storage volume assigned to the first storage device meets a second threshold condition; and

in response to (b), increasing a size of the second storage volume.

6. A method comprising:

providing a first computing device having a plurality of storage devices mounted thereto;

defining a first storage volume residing on a first storage device of the plurality of storage devices;

evaluating, by the first computing device, usage of the first storage volume;

(a) determining, by the first computing device, that usage of the first storage volume meets a first threshold condition,

in response to (a), assigning, by the first computing device, the first storage volume to both of the first storage device and a second storage device of the plurality of storage devices such that a portion of the first storage volume resides on both of the first storage device and the second storage device;

defining a storage volume limit for each storage device of the plurality of storage devices;

(b) determining, by the first computing device, that usage of one or more storage volumes assigned to the first storage device is below a second threshold condition; and

in response to (b) increasing, by the first computing device, the storage volume limit for the first storage device.

7. A method comprising:

providing a first computing device having a plurality of storage devices mounted thereto;

defining a first storage volume residing on a first storage device of the plurality of storage devices;

evaluating, by the first computing device, usage of the first storage volume;

(a) determining, by the first computing device, that usage of the first storage volume meets a first threshold condition;

in response to (a), assigning, by the first computing device, the first storage volume to both of the first storage device and a second storage device of the plurality of storage devices such that a portion of the first storage volume resides on both of the first storage device and the second storage device;

defining a storage volume limit for each storage device of the plurality of storage devices;

(b) determining, by the first computing device, that usage of one or more storage volumes assigned to the first storage device meets a second threshold condition; and

in response to (b) reducing, by the first computing device, the storage volume limit for the first storage device and increasing the storage volume limit for the second storage device.

8. A method comprising:

providing a first computing device having a plurality of storage devices mounted thereto;

defining a first storage volume residing on a first storage device of the plurality of storage devices;

evaluating, by the first computing device, usage of the first storage volume;

(a) determining, by the first computing device, that usage of the first storage volume meets a first threshold condition;

in response to (a), assigning, by the first computing device, the first storage volume to both of the first storage device and a second storage device of the plurality of storage devices such that a portion of the first storage volume resides on both of the first storage device and the second storage device;

(b) determining, by the first computing device, that usage of a second storage volume assigned to the first storage device meets a second threshold condition; and

in response to (b):

instantiating, by a second computing device, a container executing an application instance; and

provisioning, to the second computing device, a second storage volume on a third storage device.

9. A system comprising:

a first computing device having a plurality of storage devices mounted thereto and having a first storage volume residing on a first storage device of the plurality of storage devices, wherein the first computing device is programmed to:

evaluate usage of the first storage volume;

when (a) the usage of the first storage volume meets a first threshold condition, assigning, assign the first storage volume to both of the first storage device and a second storage device of the plurality of storage devices such that a portion of the first storage volume resides on both of the first storage device and the second storage device;

wherein the first computing device is further programmed to:

when usage of a second storage volume assigned to the first storage device meets a second threshold condition;

invoke instantiating, by a second computing device, a container executing an application instance; and

invoke provisioning, to the second computing device, a second storage volume on a third storage device.

10. The system of claim 9 , wherein the first computing device is programmed to evaluate (a) by evaluating whether a number of input/output operations (IOPs) processed for the first storage volume meets the first threshold condition.

11. The system of claim 9 , wherein the first computing device stores a storage volume limit for each storage device of the plurality of storage devices;

wherein the first computing device is further programmed to:

when usage of one or more storage volumes assigned to the first storage device meets a third threshold condition, reduce the storage volume limit for the first storage device.

12. The system of claim 9 , wherein the first computing device stores a storage volume limit for each storage device of the plurality of storage devices;

wherein the first computing device is further programmed to:

when usage of one or more storage volumes assigned to the first storage device is below a third threshold condition, increase the storage volume limit for the first storage device.

13. The system of claim 9 , wherein the first computing device stores a storage volume limit for each storage device of the plurality of storage devices;

wherein the first computing device is further programmed to:

when usage of one or more storage volumes assigned to the first storage device meets a third threshold condition, reduce the storage volume limit for the first storage device and increase the storage volume limit for the second storage device.

14. The system of claim 9 , wherein the first computing device is further programmed to:

(b) detect mounting of a third storage device to the first computing device; and

in response to (b), redistributed a plurality of storage volumes assigned to the first and second devices across the first, second, and third storage devices, the plurality of storage volumes including the first storage volume.

15. The system of claim 9 , wherein the first computing device is further programmed to:

when usage of a second storage volume assigned to the first storage device meets a third threshold condition, perform garbage collection for storage volumes assigned to the first storage device.

16. The system of claim 9 , wherein the first computing device is further programmed to:

when usage of a second storage volume assigned to the first storage device meets a third threshold condition, increasing a size of the second storage volume.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2024
From: ROBIN SYSTEMS, INC.
To: RAKUTEN SYMPHONY, INC.
Reel/Frame 068193/0367 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2018
From: MISHRA, ASHOK; ALLUBOYINA, RAVIKUMAR
To: ROBIN SYSTEMS, INC.
Reel/Frame 047264/0620 →
Continuity (1)
Related Publication 20200125298A1 · Apr 23, 2020