IP Library Granted Patent US 10,909,004
Granted Patent B1
US 10,909,004 · App. 16/511,676 · Granted Feb 2, 2021

Online system checkpoint recovery orchestration

Inventors: Xiangping Chen (Sherborn, MA); Anton Kucherov (Dudley, MA); Zvi Schneider (Hod Hasharon, IL); Ying Hu (Northborough, MA); Felix Shvaiger (Brighton, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F11/1451G06F2201/805G06F2201/82
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,909,004
App. No.
16/511,676
Granted
Feb 2, 2021
Kind
B1
Abstract

An aspect includes generating a checkpoint for a storage system containing an image for a point in time. An aspect also includes storing, in a reserved area, volume configuration data corresponding to volumes for the point in time, layers of metadata and physical data for the point in time. An aspect further includes creating consistent snapshots for the volumes, destaging a control module journal and persisting a hash tree and dirty tree metadata, destaging a code cache, dumping hash metadata and physical layout metadata to a separate location in the storage and enabling new metadata updates to a default location. An aspect also includes redirecting new data and metadata IOS to stripes reserved during preparation of the separate location relating to the checkpoint and protecting checkpointed data and metadata, and generating a consistent checkpoint copy of a management module repository in the reserved area of storage.

Claims (116)

1. A method comprising:

generating a checkpoint for a storage system containing an image for a point in time for the storage system;

storing, in a reserved area of the storage location, volume configuration data corresponding to volumes for the point in time, a plurality of layers of metadata for the point in time, and physical data for the point in time;

creating consistent snapshots for the volumes;

destaging a control module journal and persisting a control module hash tree and dirty tree metadata;

destaging a user defined code cache, dumping hash metadata and physical layout metadata to a separate location in the storage system and enabling new metadata updates to a default location;

redirecting the new data and metadata input/outputs (IOs) to stripes reserved during preparation of the separate location relating to the checkpoint and protecting checkpointed data and metadata; and

generating a consistent checkpoint copy of a system management module repository in the reserved area of storage.

2. The method of claim 1 , further comprising:

maintaining checkpoint consistency using a checkpoint object when a checkpoint generation operation begins;

maintaining logical volume consistency using a source object identifier, the source object identifier persisted in the checkpoint object;

maintaining harvested metadata and physical layout metadata consistency by persisting physical layout offsets of the harvested metadata and the physical layout metadata for discovery during checkpoint recovery using the checkpoint object; and

maintaining disk management database copy consistency using a persistent flag in a system management module metadata record indicating a checkpoint copy of the system management module repository was successfully generated and stored for use in checkpoint recovery using the checkpoint object.

3. The method of claim 2 , wherein maintaining the checkpoint consistency using the checkpoint object comprises:

generating the checkpoint object when checkpoint preparation is initiated; and

persisting a checkpoint unique identifier and state machine attributes in the checkpoint object.

4. The method of claim 2 , wherein maintaining the logical volume consistency using the source object identifier includes:

marking each checkpoint snapshot set with a unique checkpoint owner identifier;

persisting the checkpoint owner identifier for each checkpoint snapshot set; and

using the checkpoint owner identifier to reassign volume identity during checkpoint recovery.

5. The method of claim 2 , further comprising performing the checkpoint recovery, comprising:

receiving a request to recover a system management module process from a checkpoint;

updating a system management module initialization parameter file by setting a flag to start from the checkpoint;

starting a new system management module process with the updated initialization parameter;

loading a checkpoint copy of the system management module repository;

recovering volumes from checkpoint snapshots before any data path module activation;

activating data modules with checkpoint metadata offset information and reformatting data module journals;

activating control modules with recovered volume configuration and reformatting control module journals;

setting defragmentation mode to rollback mode and deleting data on checkpoint stripes that were written after checkpoint creation and waiting for defragmentation rollback to complete;

setting host Input Output (IO) direction to checkpoint stripes;

activating routing modules and allowing host IO operations; and

upon successful system activation, marking checkpoint recovery complete and resetting the flag in the platform.

6. The method of claim 5 wherein the loading checkpoint copy of system management module repository further comprises loading system management module metadata first.

7. The method of claim 5 wherein said loading a checkpoint copy of system management module repository further comprises:

loading a checkpoint system management module management object database data base and reconstructing in memory object database based on checkpoint;

reformatting journal chunks and discarding left over journals after checkpoint generation; and

mounting on-disk RAID 1.3 section and dumping in-memory system management module repository to default RAID 1.3 location.

8. The method of claim 5 wherein:

activating data modules with checkpoint offset information and reformatting data module journals further comprises using the data module to recover harvested metadata/physical layout metadata and user data from hardened checkpoint copy in normal data stripes, and waiting for harvested meta data recovery to complete;

activating control modules with recovered volume configuration and reformatting control module journals further comprises using the control module to load hash backup metadata based on recovered data module data content; and

using the control module to reconstruct an address to hash mapping table in memory hash tree and dirty tree for recovered volumes.

9. A system comprising:

a processor; and

memory storing computer program code that when executed on the processor causes the processor to operate a storage system, the storage system operable to perform the operations of:

generating a checkpoint for a storage system containing an image for a point in time for the storage system;

storing, in a reserved area of the storage location, volume configuration data corresponding to volumes for the point in time, a plurality of layers of metadata for the point in time, and physical data for the point in time;

creating consistent snapshots for the volumes;

destaging a control module journal and persisting a control module hash tree and dirty tree metadata;

destaging a user defined code cache, dumping hash metadata and physical layout metadata to a separate location in the storage system and enabling new metadata updates to a default location;

redirecting the new data and metadata input/outputs (IOs) to stripes reserved during preparation of the separate location relating to the checkpoint and protecting checkpointed data and metadata; and

generating a consistent checkpoint copy of a system management module repository in the reserved area of storage.

10. The system of claim 9 , wherein the operations further comprise:

maintaining checkpoint consistency using a checkpoint object when a checkpoint generation operation begins;

maintaining logical volume consistency using a source object identifier, the source object identifier persisted in the checkpoint object;

maintaining harvested metadata and physical layout metadata consistency by persisting physical layout offsets of the harvested metadata and the physical layout metadata for discovery during checkpoint recovery using the checkpoint object; and

maintaining disk management database copy consistency using a persistent flag in a system management module metadata record indicating a checkpoint copy of the system management module repository was successfully generated and stored for use in checkpoint recovery using the checkpoint object.

11. The system of claim 10 , wherein maintaining the checkpoint consistency using the checkpoint object comprises:

generating the checkpoint object when checkpoint preparation is initiated; and

persisting a checkpoint unique identifier and state machine attributes in the checkpoint object.

12. The system of claim 10 , wherein maintaining the logical volume consistency using the source object identifier includes:

marking each checkpoint snapshot set with a unique checkpoint owner identifier;

persisting the checkpoint owner identifier for each checkpoint snapshot set; and

using the checkpoint owner identifier to reassign volume identity during checkpoint recovery.

13. The system of claim 10 , wherein the operations further comprise performing the checkpoint recovery, comprising:

receiving a request to recover a system management module process from a checkpoint;

updating a system management module initialization parameter file by setting a flag to start from the checkpoint;

starting a new system management module process with the updated initialization parameter;

loading a checkpoint copy of the system management module repository;

recovering volumes from checkpoint snapshots before any data path module activation;

activating data modules with checkpoint metadata offset information and reformatting data module journals;

activating control modules with recovered volume configuration and reformatting control module journals;

setting defragmentation mode to rollback mode and deleting data on checkpoint stripes that were written after checkpoint creation and waiting for defragmentation rollback to complete;

setting host Input Output (IO) direction to checkpoint stripes;

activating routing modules and allowing host IO operations; and

upon successful system activation, marking checkpoint recovery complete and resetting the flag in the platform.

14. The system of claim 13 wherein the loading checkpoint copy of system management module repository further comprises loading system management module metadata first.

15. The system of claim 13 wherein the loading a checkpoint copy of system management module repository further comprises:

loading a checkpoint system management module management object database data base and reconstructing in memory object database based on checkpoint;

reformatting journal chunks and discarding left over journals after checkpoint generation; and

mounting on-disk RAID 1.3 section and dumping in-memory system management module repository to default RAID 1.3 location.

16. The system of claim 13 wherein:

activating data modules with checkpoint offset information and reformatting data module journals further comprises using the data module to recover harvested metadata/physical layout metadata and user data from hardened checkpoint copy in normal data stripes, and waiting for harvested meta data recovery to complete;

activating control modules with recovered volume configuration and reformatting control module journals further comprises using the control module to load hash backup metadata based on recovered data module data content; and

using the control module to reconstruct an address to hash mapping table in memory hash tree and dirty tree for recovered volumes.

17. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to operate a storage system, the computer program product performing operations, comprising:

generating a checkpoint for a storage system containing an image for a point in time for the storage system;

storing, in a reserved area of the storage location, volume configuration data corresponding to volumes for the point in time, a plurality of layers of metadata for the point in time, and physical data for the point in time;

creating consistent snapshots for the volumes;

destaging a control module journal and persisting a control module hash tree and dirty tree metadata;

destaging a user defined code cache, dumping hash metadata and physical layout metadata to a separate location in the storage system and enabling new metadata updates to a default location;

redirecting the new data and metadata input/outputs (IOs) to stripes reserved during preparation of the separate location relating to the checkpoint and protecting checkpointed data and metadata; and

generating a consistent checkpoint copy of a system management module repository in the reserved area of storage.

18. The computer program product of claim 17 , wherein the operations further comprise:

maintaining checkpoint consistency using a checkpoint object when a checkpoint generation operation begins;

maintaining logical volume consistency using a source object identifier, the source object identifier persisted in the checkpoint object;

maintaining harvested metadata and physical layout metadata consistency by persisting physical layout offsets of the harvested metadata and the physical layout metadata for discovery during checkpoint recovery using the checkpoint object; and

maintaining disk management database copy consistency using a persistent flag in a system management module metadata record indicating a checkpoint copy of the system management module repository was successfully generated and stored for use in checkpoint recovery using the checkpoint object.

19. The computer program product of claim 18 , wherein maintaining the checkpoint consistency using the checkpoint object comprises:

generating the checkpoint object when checkpoint preparation is initiated; and

persisting a checkpoint unique identifier and state machine attributes in the checkpoint object.

20. The computer program product of claim 18 , wherein maintaining the logical volume consistency using the source object identifier includes:

marking each checkpoint snapshot set with a unique checkpoint owner identifier;

persisting the checkpoint owner identifier for each checkpoint snapshot set; and

using the checkpoint owner identifier to reassign volume identity during checkpoint recovery;

wherein the operations further comprise performing the checkpoint recovery, comprising:

receiving a request to recover a system management module process from a checkpoint;

updating a system management module initialization parameter file by setting a flag to start from the checkpoint;

starting a new system management module process with the updated initialization parameter;

loading a checkpoint copy of the system management module repository;

recovering volumes from checkpoint snapshots before any data path module activation;

activating data modules with checkpoint metadata offset information and reformatting data module journals;

activating control modules with recovered volume configuration and reformatting control module journals;

setting defragmentation mode to rollback mode and deleting data on checkpoint stripes that were written after checkpoint creation and waiting for defragmentation rollback to complete;

setting host Input Output (IO) direction to checkpoint stripes;

activating routing modules and allowing host IO operations; and

upon successful system activation, marking checkpoint recovery complete and resetting the flag in the platform.

Assignments (9)
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 (053311/0169) 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 CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) 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 CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2019
From: CHEN, XIANGPING; KUCHEROV, ANTON; SCHNEIDER, ZVI; HU, YING; SHVAIGER, FELIX
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049773/0846 →
Cited By (1)
US 12,499,017