IP Library Granted Patent US 8,880,820
Granted Patent B2
US 8,880,820 · App. 12/877,186 · Granted Nov 4, 2014

Techniques for using sparse files during snapshots

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 8,880,820
App. No.
12/877,186
Granted
Nov 4, 2014
Kind
B2
Abstract

Techniques for using sparse files during snapshots are provided. Snapshots are managed and maintained for a source volume via sparse files. Metadata defines the sparse files and operations of a file system are used to create, define, and manipulate the metadata. When a write operation is detected during a snapshot, sparse files are used to copy the write operation before the write operation is performed on the source volume; the sparse files server as the snapshot data.

Claims (29)

1. A method implemented and residing within a non-transitory computer-readable storage medium that is executed by one or more processors of a network to perform the method, comprising:

detecting a write operation to a first block of data on a source volume, the source volume is being actively snapshotted;

accessing metadata associated with a sparse file of a file system to locate a second block within the sparse file, the second block is not a particular volume set aside for snapshotting;

copying the first block of data to the second block within the sparse file, the sparse file is a snapshot volume for a snapshot being performed, the first block copied before a volatile operation is performed on the first block, the source volume continues to be accessed and modified during snapshotting, and managing states of the source volume using the sparse file without reserving a snapshot file during the snapshotting by using the metadata to link locations in the source volume that have been modified to other locations within the sparse file having unmodified versions of data for the locations of the source volume, wherein the snapshot file is not set aside and is not used at all when creating and managing the snapshot as the sparse file; and

updating the first block of data on the source volume by processing the write operation.

2. The method of claim 1 further comprising, receiving a request to delete the sparse file and clearing the metadata to delete the sparse file from the file system.

3. The method of claim 1 further comprising, managing a second snapshot of the source volume as a different state of the source volume as a second sparse file within the file system.

4. The method of claim 3 , wherein managing further includes creating different metadata within the file system to manage the second snapshot.

5. The method of claim 1 further comprising, managing the source volume and the sparse file as one logical volume where the sparse file is a logical snapshot volume on the file system.

6. The method of claim 5 further comprising, detecting a read request for the first block of data and providing the updated first block of data from the source volume.

7. The method of claim 5 further comprising, detecting a read request for the first block of data and providing data from the second block within the sparse file.

8. The method of claim 1 , wherein accessing the metadata further includes managing the metadata as a matrix that maps modified blocks of data on the source volume to blocks of data on the file system having prior versions of those blocks of data.

9. The method of claim 8 , wherein accessing further includes mapping all blocks within the source volume to sparse blocks within the matrix via bits wherein when a particular hit is set a corresponding block from the source volume exists in the sparse file and when the particular bit is unset there is no corresponding block that exists in the sparse file within the file system.

10. The method of claim 9 , wherein mapping further includes identifying specific blocks that exist within the sparse file that are discontinuous or fragmented within the file system from one another.

11. The method of claim 1 , wherein accessing further includes setting a bit in the metadata that indicates the first block is updated and different on the source volume from that which is located at the second block within the sparse file.

12. A method implemented and residing within a non-transitory computer-readable storage medium that is executed by one or more processors of a network to perform the method, comprising:

configuring a snapshot service to use a sparse file as a snapshot volume for a source volume, the source volume is being actively snapshotted and the sparse file is not a particular volume set aside for snapshotting; and

managing, via the snapshot service, the sparse file via a file system that supports the sparse file as the snapshot volume for the source volume, the snapshot volume representing a particular state of the source volume being maintained via the sparse file, the sparse file defining unused space within the file system, a portion of which is logically defined as the snapshot volume, and volatile operations on the source volume are processed during snapshotting affected data copied to the sparse file before the volatile operations proceed, and managing states of the source volume using the sparse file without reserving a snapshot file during the snapshotting by using metadata to link locations in the source volume that have been modified to other locations within the sparse file having unmodified versions of data for the locations of the source volume, and wherein the snapshot file is not set aside and is not used at all when creating and managing the snapshot as the sparse file.

13. The method of claim 12 , wherein configuring further includes initiating the snapshot service to use the file system operations to read and write from the sparse file as if the sparse file were the snapshot volume.

14. The method of claim 13 , wherein initiating further includes using the operations to manage the metadata that defines locations within the file system to reconstruct the snapshot volume as the sparse file.

15. The method of claim 14 , wherein using further includes identifying the locations as discontinuous and fragmented storage areas within the file system via the metadata.

16. The method of claim 12 , wherein managing further includes only dynamically acquiring space on the file system for the sparse file when something is written by the snapshot service from the source volume to the snapshot volume.

17. A multiprocessor-implemented system, comprising:

a snapshot service implemented in and residing within a non-transitory computer-readable storage medium and to execute on one or more processors of a network; and

a file system implemented in and residing within a non-transitory computer-readable storage medium and to execute on one or more processors of the network;

the snapshot service configured to manage one or more snapshots of a source volume via sparse files that are created and managed via operations of the file system, the sparse files defining unused space within the file system that logically defines the one or more snapshots and the source volume is being actively snapshotted and the sparse files are not particular volumes set aside for snapshotting, and volatile operations on the source volume are processed during snapshotting affected data copied to the sparse files before the volatile operations proceed, and states of the source volume are managed using the sparse files without reserving a snapshot file during the snapshotting by using metadata to link locations in the source volume that have been modified to other locations within the sparse files having unmodified versions of data for the locations of the source volume, and wherein the snapshot file is not set aside and is not used at all when creating and managing the snapshots as the sparse files.

18. The system of claim 17 , wherein the source volume includes one unique sparse file for each snapshot maintained by the snapshot service.

19. The system of claim 17 , wherein each sparse file dynamically grows when written to by the snapshot service on an access basis.

20. The system of claim 17 , wherein the snapshot service defines and manages the sparse files via the metadata that a number of the operations define and manipulate.

Assignments (16)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2010
From: SUDHAKAR, GOSUKONDA NAGA VENKATA SATYA
To: NOVELL, INC.
Reel/Frame 024954/0229 →