IP Library › Granted Patent US 11,941,280
Granted Patent B2
US 11,941,280 · App. 17/587,727 · Granted Mar 26, 2024

On-demand restore of a snapshot to an on-demand volume accessible to clients

Inventors: Jagavar Nehra (Karnataka, IN); Roopesh Chuggani (Rajasthan, IN); Abhisar (Uttar Pradesh, IN); Sumith Makam (Bangalore, IN)
Assignee: NetApp, Inc.
G06F3/065G06F3/0619G06F3/067G06F11/1469G06F2201/84
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,941,280
App. No.
17/587,727
Granted
Mar 26, 2024
Kind
B2
Abstract

Techniques are provided for caching data during an on-demand restore using a cloud block map. A client may be provided with access to an on-demand volume during a restore process that copies backup data from a snapshot within a remote object store to the on-demand volume stored within local storage. In response to receiving a request from the client for a block of the backup data not yet restored from the snapshot to the on-demand volume, the block may be retrieved from the snapshot in the remote object store. The block may be cached within a cloud block map stored within the local storage as a cached block. The client may be provided with access to the cached block.

Claims (52)

1. A method comprising:

in response to receiving a restore request to restore backup data of a snapshot stored within slots of one or more objects in a remote object store, creating an on-demand volume within local storage of a device;

copying metadata from the snapshot in the remote object store to the local storage, wherein the metadata comprises cloud block numbers identifying blocks comprising the backup data, wherein a cloud block number of a block comprises a sequence number of an object and a slot number of a slot within the object in which backup data of the block is stored;

in response to the metadata being copied, providing a client with access to the on-demand volume during a restore process that copies the backup data from the snapshot within the remote object store to the on-demand volume, comprising:

in response to receiving a request from the client through the on-demand volume for the block, on-demand retrieving from the snapshot and caching the block for client access based upon the metadata mapping the cloud block number of the block to an absent indicator indicating that the block has not yet been restored; and

implementing the restore process to copy the backup data from the snapshot within the remote object store to the on-demand volume using the cloud block numbers to identify and retrieve the backup data from the one or more objects within the remote object store.

2. The method of claim 1 , wherein the copying metadata comprises:

initializing the metadata with the cloud block numbers mapped to absent indicators indicating that the blocks have not yet been restored from the snapshot in the object store to the local storage of the device.

3. The method of claim 1 , wherein the restore process uses the sequence number of the cloud block number to identify the object and uses the slot number of the cloud block number to identify and retrieve the backup data of the block from the object for restoring the backup data of the block into the on-demand volume.

4. The method of claim 1 , comprising:

in response to the metadata indicating that the block has been restored to the on-demand volume based upon the metadata mapping a virtual volume block number for the block to a physical volume block number for the block, retrieving the block from the local storage for client access.

5. The method of claim 1 , wherein the providing the client with access to the on-demand volume comprises:

in response to the metadata indicating that the block has been restored to the on-demand volume, retrieving the block from the local storage; and

providing the block to the client in response to the request.

6. The method of claim 5 , comprising:

determining that the block has been restored based upon the metadata comprising a virtual volume block number for the block.

7. The method of claim 6 , wherein the virtual volume block number is mapped to a physical volume block number used to retrieve the block from the local storage.

8. The method of claim 1 , comprising:

in response to the restore process completing, converting the on-demand volume to a volume exposed to clients for read and write access of data through the volume.

9. The method of claim 1 , comprising:

in response to the restore process restoring the blocks as restored blocks within the local storage, overwriting cloud block numbers within the metadata for the blocks with virtual volume block numbers for the restored blocks and overwriting absent indicators within the metadata for the blocks with physical volume block numbers for the restored blocks.

10. The method of claim 1 , comprising:

in response to on-demand retrieving and caching the block as a cached block, retaining the cloud block number within the metadata for the block and replacing the absent indicator within the metadata for the block with a physical volume block number of the cached block.

11. The method of claim 1 , comprising:

in response to the restore process restoring a block from the snapshot to the on-demand volume, replacing a cloud block number of the block with a virtual volume block number for the block.

12. The method of claim 11 , comprising:

replacing an absent indicator mapped to the cloud block number with a physical volume block number mapped to the virtual volume block number.

13. A computing device comprising:

a memory comprising machine executable code; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

perform a backup operation to back up a volume stored within local storage to a remote object store as backup data within a snapshot;

create an on-demand volume within the local storage in response to a restore request to restore the volume using the snapshot;

copy metadata from the snapshot to the local storage, wherein the metadata identifies blocks comprising the backup data, and wherein the metadata is initialized with absent indicators for the blocks to indicate that the blocks have yet to be restored by a restore process; and

in response to the metadata being copied, provide a client with access to the on-demand volume during the restore process that copies the from the snapshot within the remote object store to the on-demand volume, wherein the absent indicators are replaced with physical volume block numbers as the blocks are restored.

14. The computing device of claim 13 , wherein the machine executable code causes the processor to:

populate the metadata with virtual volume block number entries mapped to physical volume block number entries.

15. The computing device of claim 14 , wherein a virtual volume block number entry is populated with a cloud block number and a corresponding physical volume block number entry is populated with an absent indicator for a block not yet restored from the snapshot.

16. The computing device of claim 14 , wherein a virtual volume block number entry is populated with a virtual volume block number and a corresponding physical volume block number entry is populated with a physical volume block number for a block restored from the snapshot to the on-demand volume.

17. The computing device of claim 13 , wherein the machine executable code causes the processor to:

in response to receiving a request for a block from the client and the metadata indicating that the block has not yet been restored to the on-demand volume, retrieve the block from the snapshot in the remote object store to provide to the client in response to the request.

18. The computing device of claim 13 , wherein the machine executable code causes the processor to:

in response to receiving a request for a block from the client and the metadata indicating that the block has been restored to the on-demand volume, retrieve the block from the local storage to provide to the client in response to the request.

19. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:

perform a backup operation to back up a volume stored within local storage to a remote object store as backup data within a snapshot;

create an on-demand volume within local storage;

copy metadata from the snapshot to the local storage, wherein the metadata identifies blocks comprising backup data of the volume stored within the snapshot; and

in response to the metadata being copied, provide a client with access to the on-demand volume, comprising:

in response to receiving a request from the client through the on-demand volume for data, identify a set of blocks comprising the data;

in response to the metadata indicating that a first subset of blocks of the set of blocks have not yet been restored to the on-demand volume based upon the metadata comprising absent indicators for the first subset of blocks, on-demand retrieve from the snapshot and cache the first subset of blocks for the request; and

in response to the metadata indicating that a second subset of blocks of the set of blocks have been restored to the on-demand volume based upon the metadata comprising virtual volume block numbers for the second subset of blocks, retrieve the second subset of blocks from the local storage for the request.

20. The non-transitory machine readable medium of claim 19 , wherein the instructions cause the machine to:

in response to on-demand retrieving and caching the first subset of blocks as cached blocks, retain cloud block numbers within the metadata for the first subset of blocks and replace the absent indicators within the metadata for the first subset of blocks with physical volume block numbers of the cached blocks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2023
From: NEHRA, JAGAVAR; CHUGGANI, ROOPESH; ., ABHISAR; MAKAM, SUMITH
To: NETAPP, INC.
Reel/Frame 064657/0587 →
Priority Claims (2)
IN 202141034103 · Jul 29, 2021 · national
IN 202141034122 · Jul 29, 2021 · national
Continuity (1)
Related Publication 20230029795A1 · Feb 2, 2023
Cited By (3)
US 12,229,431 US 12,455,854 US 12,639,000