IP Library Granted Patent US 11,822,804
Granted Patent B2
US 11,822,804 · App. 17/492,950 · Granted Nov 21, 2023

Managing extent sharing between snapshots using mapping addresses

Inventors: Wenguang Wang (Santa Clara, CA); Enning Xiang (Palo Alto, CA); Pranay Singh (Palo Alto, CA); Subhradyuti Sarkar (Palo Alto, CA)
Assignee: VMware, Inc.
G06F3/0644G06F3/0619G06F3/0659G06F3/0673G06F12/0246G06F2212/7201
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,822,804
App. No.
17/492,950
Granted
Nov 21, 2023
Kind
B2
Abstract

The present disclosure is related to methods, systems, and machine-readable media for managing extent sharing between snapshots using mapping addresses. A first mapping address can be assigned to a first extent responsive to a request to write the first extent. A second mapping address can be assigned to a second extent responsive to a request to write the second extent. A snapshot can be created. A snapshot mapping address, that is monotonically increased from the second mapping address, can be assigned to the snapshot. A third mapping address, that is monotonically increased from the second mapping address, can be assigned to a third extent of the snapshot responsive to a request to write the third extent. An ownership status of each of the first extent, the second extent, and the third extent can be determined based respectively on: a comparison between the first mapping address and the snapshot mapping address, a comparison between the second mapping address and the snapshot mapping address, and a comparison between the third mapping address and the snapshot mapping address.

Claims (86)

1. A method, comprising:

assigning a first mapping address to a first extent of a first snapshot of a storage volume responsive to a request to write the first extent;

assigning a second mapping address to a second extent of the first snapshot responsive to a request to write the second extent, wherein the second mapping address is monotonically increased from the first mapping address;

creating a second snapshot of the storage volume in the file system;

assigning a snapshot mapping address to the second snapshot, wherein the snapshot mapping address is monotonically increased from the second mapping address;

assigning a third mapping address to a third extent of the second snapshot responsive to a request to write the third extent, wherein the third mapping address is monotonically increased from the second mapping address;

determining an ownership status of each of the first extent, the second extent, and the third extent, including:

determining that the first extent is shared by the second snapshot and the first snapshot responsive to a determination that the first mapping address is less than the snapshot mapping address,

determining that the second extent is shared by the second snapshot and the first snapshot responsive to a determination that the second mapping address is less than the snapshot mapping address; and

determining that the third extent is owned by the second snapshot responsive to a determination that the third mapping address is greater than or equal to the snapshot mapping address.

2. The method of claim 1 , wherein the method includes, responsive to receiving a request to delete the first snapshot:

transferring ownership of the first extent and the second extent to the second snapshot; and

changing the snapshot mapping address to the first mapping address.

3. The method of claim 1 , wherein the method includes maintaining a mapping table, wherein the mapping table associates:

a first logical block address (LBA) of the first extent with the first mapping address;

the first mapping address with a first physical sector address (PSA);

a second LBA of the second extent with the second mapping address;

the second mapping address with a second PSA;

a third LBA of the third extent with the third mapping address; and

the third mapping address with a third PSA.

4. The method of claim 3 , wherein the method includes:

receiving a request to overwrite the first extent subsequent to assigning the third mapping address to the third extent;

determining that the first extent is shared by the second snapshot and the first snapshot responsive to a determination that the first mapping address is less than the snapshot mapping address; and

modifying the mapping table such that the mapping table associates the first LBA with a fourth mapping address and associates the fourth mapping address with a fourth PSA.

5. The method of claim 4 , wherein the method includes:

receiving a request to overwrite the third extent subsequent to assigning the third mapping address to the third extent;

determining that the third extent is owned by the second snapshot responsive to a determination that the third extent is greater than or equal to the snapshot mapping address; and

modifying the mapping table such that the mapping table associates the third mapping address with a fifth PSA.

6. The method of claim 1 , wherein the snapshot mapping address is equal to a smallest mapping address of any extents owned by the second snapshot.

7. A non-transitory machine-readable medium having instructions stored thereon which, when executed by a processor, cause the processor to:

assign a first mapping address to a first extent of a first snapshot of a storage volume responsive to a request to write the first extent;

assign a second mapping address to a second extent of the first snapshot responsive to a request to write the second extent, wherein the second mapping address is monotonically increased from the first mapping address;

create a second snapshot of the storage volume in the file system;

assign a snapshot mapping address to the second snapshot, wherein the snapshot mapping address is monotonically increased from the second mapping address;

assign a third mapping address to a third extent of the second snapshot responsive to a request to write the third extent, wherein the third mapping address is monotonically increased from the second mapping address; and

determine an ownership status of each of the first extent, the second extent, and the third extent, including:

determining that the first extent is shared by the second snapshot and the first snapshot responsive to a determination that the first mapping address is less than the snapshot mapping address,

determining that the second extent is shared by the second snapshot and the first snapshot responsive to a determination that the second mapping address is less than the snapshot mapping address; and

determining that the third extent is owned by the second snapshot responsive to a determination that the third mapping address is greater than or equal to the snapshot mapping address.

8. The medium of claim 7 , including instructions, responsive to receiving a request to delete the first snapshot, to:

transfer ownership of the first extent and the second extent to the second snapshot; and

change the snapshot mapping address to the first mapping address.

9. The medium of claim 7 , including instructions to maintain a mapping table, wherein the mapping table associates:

a first logical block address (LBA) of the first extent with the first mapping address;

the first mapping address with a first physical sector address (PSA);

a second LBA of the second extent with the second mapping address;

the second mapping address with a second PSA;

a third LBA of the third extent with the third mapping address; and

the third mapping address with a third PSA.

10. The medium of claim 9 , including instructions to:

receive a request to overwrite the first extent subsequent to assigning the third mapping address to the third extent;

determine that the first extent is shared by the second snapshot and the first snapshot responsive to a determination that the first mapping address is less than the snapshot mapping address; and

modify the mapping table such that the mapping table associates the first LBA with a fourth mapping address and associates the fourth mapping address with a fourth PSA.

11. The medium of claim 10 , including instructions to:

receive a request to overwrite the third extent subsequent to assigning the third mapping address to the third extent;

determine that the third extent is owned by the second snapshot responsive to a determination that the third extent is greater than or equal to the snapshot mapping address; and

modify the mapping table such that the mapping table associates the third mapping address with a fifth PSA.

12. The medium of claim 7 , wherein the snapshot mapping address is equal to a smallest mapping address of any extents owned by the second snapshot.

13. A system, comprising:

a first extent engine configured to assign a first mapping address to a first extent of a first snapshot of a storage volume responsive to a request to write the first extent;

a second extent engine configured to assign a second mapping address to a second extent of the first snapshot responsive to a request to write the second extent, wherein the second mapping address is monotonically increased from the first mapping address;

a snapshot engine configured to create a second snapshot of the storage volume in the file system;

a snapshot middle block address (SSMBA) engine configured to assign a snapshot mapping address to the second snapshot, wherein the snapshot mapping address is monotonically increased from the second mapping address;

a third extent engine configured to assign a third mapping address to a third extent of the second snapshot responsive to a request to write the third extent, wherein the third mapping address is monotonically increased from the second mapping address;

an ownership status engine configured to determine an ownership status of each of the first extent, the second extent, and the third extent, including:

determining that the first extent is shared by the second snapshot and the first snapshot responsive to a determination that the first mapping address is less than the snapshot mapping address,

determining that the second extent is shared by the second snapshot and the first snapshot responsive to a determination that the second mapping address is less than the snapshot mapping address; and

determining that the third extent is owned by the second snapshot responsive to a determination that the third mapping address is greater than or equal to the snapshot mapping address.

14. The system of claim 13 , wherein the ownership status engine is configured to, responsive to receiving a request to delete the first snapshot:

transfer ownership of the first extent and the second extent to the second snapshot; and

change the snapshot mapping address to the first mapping address.

15. The system of claim 13 , wherein the ownership status engine is configured to maintain a mapping table, wherein the mapping table associates:

a first logical block address (LBA) of the first extent with the first mapping address;

the first mapping address with a first physical sector address (PSA);

a second LBA of the second extent with the second mapping address;

the second mapping address with a second PSA;

a third LBA of the third extent with the third mapping address; and

the third mapping address with a third PSA.

16. The system of claim 15 , wherein the ownership status engine is configured to:

receive a request to overwrite the first extent subsequent to assigning the third mapping address to the third extent;

determine that the first extent is shared by the second snapshot and the first snapshot responsive to a determination that the first mapping address is less than the snapshot mapping address; and

modify the mapping table such that the mapping table associates the first LBA with a fourth mapping address and associates the fourth mapping address with a fourth PSA.

17. The system of claim 16 , wherein the ownership status engine is configured to:

receive a request to overwrite the third extent subsequent to assigning the third mapping address to the third extent;

determine that the third extent is owned by the second snapshot responsive to a determination that the third extent is greater than or equal to the snapshot mapping address; and

modify the mapping table such that the mapping table associates the third mapping address with a fifth PSA.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2021
From: WANG, WENGUANG; XIANG, ENNING; SINGH, PRANAY; SARKAR, SUBHRADYUTI
To: VMWARE, INC.
Reel/Frame 057688/0730 →