IP Library › Granted Patent US 10,037,251
Granted Patent B1
US 10,037,251 · App. 14/674,556 · Granted Jul 31, 2018

File system rollback to previous point in time

Inventors: Jean-Pierre Bono (Westborough, MA); Himabindu Tummala (South Grafton, MA); Assaf Natanzon (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F17/30174G06F2201/84G06F2201/87
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,037,251
App. No.
14/674,556
Filed
Mar 31, 2015
Granted
Jul 31, 2018
Kind
B1
Examiner
JAMI, HARES
Art Unit
2162
USPC
707/639
Abstract

A technique for performing continuous data protection and point-in-time recovery for file systems includes performing continuous replication to maintain a replica of a file system by writing changes in the file system to a journal and then writing the changes from the journal to the replica. In response to receiving a request to roll back the replica to a previous point in time, the technique accesses the journal to identify changes made to the replica since the previous point in time and performs undo operations to undo the identified changes and restore the replica to its state at the previous point in time.

Claims (59)

1. A method of managing file system replicas in a data storage system, the method comprising:

performing continuous replication to maintain a replica of a file system, the continuous replication (i) specifying changes to be made to the file system and mirrored to the replica, (ii) persisting the changes and associated timestamps in a journal, and (iii) applying the changes persisted in the journal to the replica;

receiving a request to roll back the replica of the file system to a previous point in time; and

in response to receiving the request, (i) accessing the journal to identify, based on the timestamps, a set of the changes made to the replica since the previous point in time and (ii) undoing the set of the changes in the replica to restore the replica to the previous point in time,

wherein the method further comprises:

realizing the replica of the file system in a container file stored in a container file system of the data storage system; and

exposing the container file as a volume of the data storage system,

wherein, when applying the changes persisted in the journal to the replica, the method includes applying the changes persisted in the journal to the volume, and

wherein, when performing continuous replication to maintain the replica of the file system, the method further comprises:

performing continuous replication on a transaction log of the file system to maintain a log replica, the log replica storing pending metadata transactions to the file system; and

after restoring the replica of the file system to the previous point in time, applying the pending metadata transactions from the log replica to the replica of the file system,

wherein the file system is one of multiple file systems grouped together in a VSP (Virtualized Storage Processor), wherein, when performing continuous replication to maintain the replica of the file system, the method comprises performing continuous replication on each of the multiple file systems to maintain a replica of the VSP, and wherein the method further comprises managing multiple lifecycle events of the VSP, including DR testing, from a single management application.

2. The method of claim 1 , further comprising, after restoring the replica of the file system to the previous point in time, processing IO requests directed to the replica of the file system to effect read and write operations on the replica as part of performing DR (Disaster Recovery) testing.

3. The method of claim 2 , wherein processing the IO requests includes processing an IO request to effect a write operation that overwrites a set of blocks in the replica of the file system, and wherein, to effect the write operation, the method further includes, prior to overwriting the set of blocks, providing data from the set of blocks in the journal to preserve values of the set of blocks in the journal.

4. The method of claim 3 , wherein the method further comprises:

receiving a request to exit DR testing;

in response to receiving the request to exit DR testing, copying the data provided in the journal from the set of blocks back to the set of blocks to restore the set of blocks to their state prior to processing the IO request.

5. The method of claim 3 ,

wherein the file system is one of multiple data objects grouped together in a VSP (Virtualized Storage Processor),

wherein, when performing continuous replication to maintain the replica of the file system, the method comprises performing continuous replication on each of the multiple data objects to maintain a replica of the VSP,

and wherein performing DR testing on the replica of the file system is part of a process for performing DR testing on the VSP.

6. The method of claim 5 , wherein the multiple data objects grouped together in the VSP include the file system as well a set of other objects, the set of other objects including at least one of (i) another file system, (ii) a LUN (Logical Unit Number), or (iii) a VVol (Virtual Volume), and wherein the replica of the VSP includes a replica of each of the set of other objects.

7. The method of claim 1 , wherein performing continuous replication includes performing discrete update operations on the replica of VSP keep the replica of the VSP current with changes made to the VSP, and wherein the method further comprises:

receiving a message in one of the discrete update operations that identifies a point in time at which an application accessing the VSP is in an application-consistent state,

wherein the request to roll back the replica to the previous point in time is a request to roll back the replica to the point in time at which the application accessing the VSP was in the application-consistent state.

8. A data storage system comprising control circuitry constructed and arranged to:

perform continuous replication to maintain a replica of a file system, the continuous replication (i) specifying changes to be made to the file system and mirrored to the replica, (ii) persisting the changes and associated timestamps in a journal, and (iii) applying the changes persisted in the journal to the replica;

receive a request to roll back the replica of the file system to a previous point in time; and

in response to receiving the request, (i) access the journal to identify, based on the timestamps, a set of the changes made to the replica since the previous point in time and (ii) undoing the set of the changes in the replica to restore the replica to the previous point in time,

wherein the control circuitry, constructed and arranged to perform continuous replication to maintain the replica of the file system, is further constructed and arranged to:

perform continuous replication on a transaction log of the file system to maintain a log replica, the log replica storing pending metadata transactions to the file system; and

after restoring the replica of the file system to the previous point in time, apply the pending metadata transactions from the log replica to the replica of the file system,

wherein the file system is one of multiple file systems grouped together in a VSP (Virtualized Storage Processor), wherein, when constructed and arranged to perform continuous replication to maintain the replica of the file system, the control circuitry is further constructed and arranged to perform continuous replication on each of the multiple file systems to maintain a replica of the VSP, and wherein the control circuitry is further constructed and arranged to manage multiple lifecycle events of the VSP, including DR testing, from a single management application.

9. The data storage system of claim 8 , wherein the control circuitry is further constructed and arranged to:

realize the replica of the file system in a container file stored in a container file system of the data storage system; and

expose the container file as a volume of the data storage system,

wherein, when constructed and arranged to apply the changes persisted in the journal to the replica, the control circuitry is further constructed and arranged to apply the changes persisted in the journal to the volume.

10. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry, cause the control circuitry to perform a method of managing replicas, the method comprising:

performing continuous replication to maintain a replica of a VSP (Virtualized Storage Processor), the VSP including multiple file systems, the continuous replication (i) specifying changes to be made to the VSP and mirrored to the replica, (ii) persisting the changes and associated timestamps in a journal, and (iii) applying the changes persisted in the journal to the replica;

receiving a request to roll back the replica of the VSP, including each of the multiple file systems, to a previous point in time; and

in response to receiving the request, (i) accessing the journal to identify, based on the timestamps, a set of the changes made to the replica of the VSP since the previous point in time and (ii) undoing the set of the changes in the replica of the VSP to restore the replica to the previous point in time,

wherein, when performing continuous replication to maintain the replica of the file system, the method further comprises:

performing continuous replication on a transaction log of the file system to maintain a log replica, the log replica storing pending metadata transactions to the file system; and

after restoring the replica of the file system to the previous point in time, applying the pending metadata transactions from the log replica to the replica of the file system,

wherein the file system is one of multiple file systems grouped together in a VSP (Virtualized Storage Processor), wherein, when performing continuous replication to maintain the replica of the file system, the method comprises performing continuous replication on each of the multiple file systems to maintain a replica of the VSP, and

wherein the method further comprises managing multiple lifecycle events of the VSP, including DR testing, from a single management application.

11. The computer program product of claim 10 , wherein the replica of the VSP includes a file system replica for each of the multiple file systems that the VSP includes, and wherein the method further comprises:

realizing the file system replicas in respective container files stored in a set of container file systems of the data storage system; and

exposing each container file as a respective volume of the data storage system,

wherein, when applying the changes persisted in the journal to the replica, the method includes applying the changes persisted in the journal for each of the multiple file systems to the respective volume.

12. The computer program product of claim 11 , further comprising, after restoring the replica of the VSP to the previous point in time, processing IO requests directed to the replica of the VSP to effect read and write operations on the replica of the VSP as part of performing DR (Disaster Recovery) testing.

13. The computer program product of claim 12 , wherein processing the IO requests includes processing an IO request to effect a write operation that overwrites a set of blocks in the replica of the VSP, and wherein, to effect the write operation, the method further includes, prior to overwriting the set of blocks, providing data of the set of blocks in the journal to preserve values of the set of blocks in the journal.

14. The computer program product of claim 13 , wherein the method further comprises:

receiving a request to exit DR testing;

in response to receiving the request to exit DR testing, copying the data provided in the journal from the set of blocks back to the set of blocks to restore the set of blocks to their state prior to processing the IO request.

15. The computer program product of claim 14 , wherein the VSP further includes a set of other objects, the set of other objects including at least one of (i) a LUN (Logical Unit Number) or (ii) a VVol (Virtual Volume), wherein the replica of the VSP includes a replica of each of the set of other objects, and wherein the method further comprises:

realizing the replica of each of the set of other objects in respective other container files stored in the set of container file system of the data storage system; and

exposing each of the other container files as a respective volume of the data storage system,

wherein, when applying the changes persisted in the journal to the replica, the method includes applying the changes persisted in the journal for each of the set of other objects to the respective volume.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2015
From: BONO, JEAN-PIERRE; TUMMALA, HIMABINDU; NATANZON, ASSAF
To: EMC CORPORATION
Reel/Frame 036653/0406 →
Cited By (5)
US 12,210,419 US 12,229,011 US 12,353,395 US 12,373,411 US 12,717,682