IP Library Granted Patent US 11,150,834
Granted Patent B1
US 11,150,834 · App. 16/897,626 · Granted Oct 19, 2021

Determining storage consumption in a storage system

Inventors: Matthew Fay (Mountain View, CA); Naveen Neelakantam (Mountain View, CA); Ronald Karr (Palo Alto, CA); Taher Vohra (Sunnyvale, CA)
Assignee: Pure Storage, Inc.
G06F3/0653G06F3/0604G06F3/0641G06F3/0673
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,150,834
App. No.
16/897,626
Granted
Oct 19, 2021
Kind
B1
Abstract

Determining storage consumption in a storage system, including scanning a group of data units within the storage system storing a plurality of client entities, including: for each data unit in the group of data units, determining whether the data unit is reachable by one of the plurality of client entities; and for each data unit reachable by one of the plurality of client entities, determining a category for the data unit; calculating storage consumption for a client based on the category of each data unit reachable by one of the plurality of client entities; and reporting the calculated storage consumption.

Claims (35)

1. A method comprising:

for a group of data units within a storage system storing a plurality of client entities:

for each data unit in the group of data units, determining whether the data unit is reachable by one of the plurality of client entities; and

for each data unit reachable by one of the plurality of client entities, determining a category for the data unit;

calculating storage consumption for a client based on the category of each data unit reachable by one of the plurality of client entities; and

reporting the calculated storage consumption.

2. The method of claim 1 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises applying an accounting policy to assign units of storage consumption based on the category of each data unit reachable by one of the plurality of client entities.

3. The method of claim 1 , wherein determining the category for the data unit comprises determining a type of client entity utilizing the data unit.

4. The method of claim 1 , wherein determining whether the data unit is reachable by one of the plurality of client entities comprises iterating over a database graph organizing the group of data units.

5. The method of claim 1 , wherein the group of data units comprises data units from at least two storage arrays in the storage system.

6. The method of claim 1 , wherein the plurality of client entities include at least one volume and at least one snapshot.

7. The method of claim 1 , wherein the data units are one of a data block, an extent, and a segment.

8. The method of claim 1 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises assigning units of storage consumption based on a number of times each data unit is shared between client entities.

9. The method of claim 1 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises accounting for compression.

10. The method of claim 1 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises accounting for snapshots.

11. The method of claim 1 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises accounting for deduplication.

12. A storage system comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:

scanning a group of low-level data units within the storage system storing a plurality of client entities, including:

for each data unit in the group of low-level data units, determining whether the data unit is reachable by one of the plurality of client entities; and

for each data unit reachable by one of the plurality of client entities, determining a category for the data unit;

calculating storage consumption for a client based on the category of each data unit reachable by one of the plurality of client entities; and

reporting the calculated storage consumption.

13. The storage system of claim 12 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises applying an accounting policy to assign units of storage consumption based on the category of each data unit reachable by one of the plurality of client entities.

14. The storage system of claim 12 , wherein determining the category for the data unit comprises determining a type of client entity utilizing the data unit.

15. The storage system of claim 12 , wherein scanning the group of low-level data units within the storage system comprises iterating over a database graph organizing the group of low-level data units.

16. The storage system of claim 12 , wherein the group of low-level data units comprises data units from at least two storage arrays in the storage system.

17. The storage system of claim 12 , wherein the plurality of client entities include at least one volume and at least one snapshot.

18. The storage system of claim 12 , wherein the data units are one of a data block, an extent, and a segment.

19. The storage system of claim 12 , wherein calculating storage consumption for the client based on the category of each data unit reachable by one of the plurality of client entities comprises assigning units of storage consumption based on a number of times each data unit is shared between client entities.

20. A computer program product disposed upon a computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

scanning a group of data units within a storage system storing a plurality of client entities, including:

for each data unit in the group of data units, determining whether the data unit is reachable by one of the plurality of client entities; and

for each data unit reachable by one of the plurality of client entities, determining a category for the data unit;

calculating storage consumption for a client based on the category of each data unit reachable by one of the plurality of client entities; and

reporting the calculated storage consumption.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2020
From: FAY, MATTHEW; NEELAKANTAM, NAVEEN; KARR, RONALD; VOHRA, TAHER
To: PURE STORAGE, INC.
Reel/Frame 052894/0113 →