IP Library Granted Patent US 10,503,757
Granted Patent B1
US 10,503,757 · App. 14/848,984 · Granted Dec 10, 2019

Cataloging storage arrays

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,503,757
App. No.
14/848,984
Granted
Dec 10, 2019
Kind
B1
Abstract

A cataloging period associated with a storage array is received. The storage array is cataloged to create an index for data stored on the storage array. New data is stored on the storage array. A determination is made as to whether the storage array should be re-cataloged to update the index. If the cataloging period has not elapsed, the determination is that the storage array should not be re-cataloged, the index thereby not being updated for the new data on the storage array. If the cataloging period has elapsed, the determination is that the storage array should be re-cataloged, the index thereby being updated for the new data on the storage array.

Claims (80)

1. A method comprising:

providing a catalog system comprising a cataloging module;

receiving a cataloging period associated with a storage array coupled to the catalog system;

cataloging, by the cataloging module, the storage array to create an index for data stored on the storage array, the cataloging comprising:

issuing, by the cataloging module, a command to a storage array interface of the storage array to obtain host information of a plurality of hosts configured on the storage array for the index;

issuing, by the cataloging module, a command to the storage array interface to obtain snapshot information for each snapshot on the storage array for the index, wherein a snapshot comprises a source logical unit number (LUN) and a reserved LUN associated with a reserved LUN pool, the source LUN comprising data that has not changed since a creation of the snapshot, and the reserved LUN comprising data that has changed, wherein when disks of the reserved LUN pool are full, active snap sessions using the reserved LUN pool terminate;

issuing, by the cataloging module, a command to the storage array interface to obtain storage group information for each storage group on the storage array for the index, wherein a storage group comprises a source LUN and is associated with a host of the plurality of hosts; and

issuing, by the cataloging module, a command to the storage array interface to obtain clone group information for each clone group on the storage array for the index, wherein a clone group comprises a plurality of clone LUNs, a clone LUN is a copy of a particular source LUN from a particular storage group, the particular source LUN being specified when the clone group is created, and wherein the catalog system allows a user to use the index of the catalog system to search for the hosts, snapshots, and clone LUNs of the storage array, thereby reducing load on the storage array;

creating, by the cataloging module, the index by storing the host information, the snapshot information, the storage group information, and the clone group information obtained from the storage array on a storage medium;

allowing new data to be stored on the storage array;

cataloging, by the cataloging module, the storage array periodically based on the cataloging period;

determining, by the cataloging module, whether the storage array should be re-cataloged to update the index by using a duration of the cataloging period; and

fetching, during a backup recovery of the storage array, meta-data of the storage array via the index from the catalog system instead of the storage array to reduce the load on the storage array.

2. The method of claim 1 wherein the cataloging period comprises a duration of time received from the user.

3. The method of claim 1 comprising:

generating a warning indicating that the catalog system is no longer in synchronization with the storage array.

4. The method of claim 1 wherein the new data comprises a new snapshot stored on the storage array and the method comprises:

determining that the cataloging period has not elapsed; and

based on the determination that the cataloging period has not elapsed, not updating the index with indexing information for the new snapshot.

5. The method of claim 1 comprising:

analyzing the storage array to determine whether the storage array can store a Y number of snapshots for an application; and

if the storage array cannot store the Y number of snapshots for the application, generating an alert, wherein the Y number of snapshots indicate a number of snapshots that are to be created for the application per day.

6. The method of claim 1 : wherein the storage medium having the index is in a location physically separate from the storage array and the method comprises:

upon a determination that the storage array needs to be recovered, allowing the index for the storage array to be fetched from the catalog system.

7. A computing system for cataloging storage arrays, the computing system comprising:

a processor; and

a memory in communication with the processor, the memory comprising a plurality of instructions executable by the processor, when the plurality of instructions are executed the processor being configured to:

provide a catalog system comprising a cataloging module;

receive a cataloging period associated with a storage array coupled to the catalog system;

catalog the storage array to create an index for data stored on the storage array, the catalog comprising:

issuing, by the cataloging module, a command to a storage array interface of the storage array to obtain host information of a plurality of hosts configured on the storage array, the host information to be stored in the index;

issuing, by the cataloging module, a command to the storage array interface to obtain snapshot information for each snapshot on the storage array, the snapshot information to be stored in the index, wherein a snapshot comprises a source logical unit number (LUN) and a reserved LUN associated with a reserved LUN pool, the source LUN comprising data that has not changed since a creation of the snapshot, and the reserved LUN comprising data that has changed, wherein when disks of the reserved LUN pool are full, active snap sessions using the reserved LUN pool terminate;

issuing, by the cataloging module, a command to the storage array interface to obtain storage group information for each storage group on the storage array, the storage group information to be stored in the index, wherein a storage group comprises a source LUN and is associated with a host of the plurality of hosts; and

issuing, by the cataloging module, a command to the storage array interface to obtain clone group information for each clone group on the storage array, the clone group information to be stored in the index, wherein a clone group comprises a plurality of clone LUNs, a clone LUN is a copy of a particular source LUN from a particular storage group, the particular source LUN being specified when the clone group is created, and wherein the catalog system allows a user to use the index of the catalog system to search for the hosts, snapshots, and clone LUNs of the storage array, thereby reducing load on the storage array;

create, by the cataloging module, the index by storing the host information, the snapshot information, the storage group information, and the clone group information obtained from the storage array on a storage medium;

allow new data to be stored on the storage array;

catalog, by the catalog module, the storage array periodically based on the cataloging period;

determine, by the cataloging module, whether the storage array should be re-cataloged to update the index by using a duration of the cataloging period; and

fetch, during a backup recovery of the storage array, meta-data of the storage array via the index from the catalog system and not from a backup storage array.

8. The computing system of claim 7 wherein the cataloging period comprises a duration of time received from the user.

9. The computing system of claim 7 wherein the processor is further configured to:

generate a warning indicating that the catalog system is no longer in synchronization with the storage array.

10. The computing system of claim 7 wherein the new data comprises a new snapshot stored on the storage array and the processor is further configured to:

determine that the cataloging period has not elapsed; and

based on the determination that the cataloging period has not elapsed, not update the index with indexing information for the new snapshot.

11. The computing system of claim 7 wherein the processor is further configured to:

analyze the storage array to determine whether the storage array can store a Y number of snapshots for an application; and

if the storage array cannot store the Y number of snapshots for the application, generate an alert, wherein the Y number of snapshots indicate a number of snapshots that are to be created for the application per day.

12. The computing system of claim 7 wherein the storage medium having the index

is in a location physically separate from the storage array, and wherein the processor is further configured to:

upon a determination that the storage array needs to be recovered, allow the index for the storage array to be fetched from the catalog system.

13. A computer program product for cataloging storage arrays, comprising a non-transitory computer usable medium having machine readable code embodied therein for:

providing a catalog system comprising a cataloging module;

receiving a cataloging period associated with a storage array coupled to the catalog system;

cataloging, by the cataloging module, the storage array to create an index for data stored on the storage array, the cataloging comprising:

conducting a first discovery using a storage array interface of the storage array to obtain, for the index, host information of a plurality of hosts configured on the storage array;

conducting a second discovery using the storage array interface to obtain, for the index, snapshot information for each snapshot on the storage array, wherein a snapshot comprises a source logical unit number (LUN) and a reserved LUN associated with a reserved LUN pool, the source LUN comprising data that has not changed since a creation of the snapshot, and the reserved LUN comprising data that has changed, wherein when disks of the reserved LUN pool are full, active snap sessions using the reserved LUN pool terminate;

conducting a third discovery using the storage array interface to obtain, for the index, storage group information for each storage group on the storage array, wherein a storage group comprises a source LUN and is associated with a host of the plurality of hosts; and

conducting a fourth discovery using the storage array interface to obtain clone group information for each clone group on the storage array, for the index, wherein a clone group comprises a plurality of clone LUNs, a clone LUN is a copy of a particular source LUN from a particular storage group, the particular source LUN being specified when the clone group is created, and wherein the catalog system allows a user to use the index of the catalog system to search for the hosts, snapshots, and clone LUNs of the storage array, thereby reducing load on the storage array;

creating the index by storing the host information, the snapshot information, the storage group information, and the clone group information obtained from the storage array on a storage medium;

allowing new data to be stored on the storage array;

cataloging, by the cataloging module, the storage array periodically based on the cataloging period;

determining, by the cataloging module, whether the storage array should be re-cataloged to update the index by using a duration of the cataloging period; and

fetching, during a backup recovery of the storage array, meta-data of the storage array via the index from the catalog system and not from the storage array or a backup storage array.

14. The computer program product of claim 13 wherein the non-transitory computer usable medium comprises machine readable code embodied therein for:

generating a warning indicating that the catalog system is no longer in synchronization with the storage array.

15. The computer program product of claim 13 wherein the new data comprises a new snapshot stored on the storage array and the non-transitory computer usable medium comprises machine readable code embodied therein for:

determining that the cataloging period has not elapsed; and

based on the determination that the cataloging period has not elapsed, not updating the index with indexing information for the new snapshot.

16. The computer program product of claim 13 wherein the non-transitory computer usable medium comprises machine readable code embodied therein for:

analyzing the storage array to determine whether the storage array can store a Y number of snapshots for an application; and

if the storage array cannot store the Y number of snapshots for the application, generating an alert, wherein the Y number of snapshots indicate a number of snapshots that are to be created for the application per day.

17. The computer program product of claim 13 wherein the storage medium having the index

is in a location physically separate from the storage array and wherein the non-transitory computer usable medium comprises machine readable code embodied therein for:

upon a determination that the storage array needs to be recovered, allowing the index for the storage array to be fetched from the catalog system.

18. The method of claim 1 comprising:

mounting the snapshot for a backup;

searching the catalog system to determine whether a host at which the snapshot is being mounted for the backup belongs to a storage group;

proceeding with the mounting if the host belongs to a storage group; and

issuing a warning if the host does not belong to a storage group.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →