IP Library › Granted Patent US 10,235,090
Granted Patent B1
US 10,235,090 · App. 15/274,117 · Granted Mar 19, 2019

Validating replication copy consistency using a hash function in a storage system

Inventors: Leehod Baruch (Rishon Leziyon, IL); Assaf Natanzon (Tel Aviv, IL); Jehuda Shemer (Kfar Saba, IL); Amit Lieberman (Raanana, IL); Ron Bigman (Holon, IL)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/0619G06F3/0683
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,235,090
App. No.
15/274,117
Filed
Sep 23, 2016
Granted
Mar 19, 2019
Kind
B1
Examiner
THAI, TUAN V
Art Unit
2135
USPC
711/162
Abstract

Described embodiments provide systems and methods for operating a storage system. One or more data replicas of production data of the storage system are generated. For each of the one or more data replicas, an associated hash value is generated. The one or more data replicas are stored in a replica storage of the storage system, and the associated hash values are stored as journal data associated with the respective data replica. Each data replica is verified based upon the hash value retrieved from the journal data.

Claims (102)

1. A method operable in a storage system in operable communication with a source subsystem configured to store production data and a target subsystem configured to store one or more replicas of the production data, the method comprising:

tracking one or more first hash values of the production data of the source subsystem at respective one or more points in time (PIT);

generating one or more data replicas of the production data at the one or more PIT;

writing the one or more data replicas, together with the corresponding one or more first hash values, from the source subsystem to the target subsystem,

storing the one or more data replicas in the target subsystem at a replica storage;

storing the one or more first hash values, in the target subsystem, as metadata configured as part of target journal data associated with the respective one or more data replicas, wherein the metadata stored for a respective replica generated at a given PIT corresponds to the first hash value of production data taken at the given PIT; and

verifying each data replica stored in the target subsystem based upon comparing the respective first hash value retrieved from the target journal data with a respective second hash value generated based on the respective data replica stored in the replica storage of the target subsystem, wherein verifying each data replica comprises at least one of:

periodically verifying the one or more data replicas at determined time intervals;

dynamically verifying the one or more data replicas during idle time of the storage system; and

verifying the one or more data replicas before performing a roll back operation employing the one or more data replicas to roll back production data of the storage system.

2. The method of claim 1 , wherein generating one or more data replicas comprises at least one of: (i) generating a continuous data replica each time the production data is modified, and (ii) generating a snapshot data replica at a determined time interval.

3. The method of claim 2 , wherein generating a continuous data replica comprises:

intercepting, at the source subsystem of the data protection system, a write operation to the source LU;

configuring the source subsystem for:

determining a hash value of data associated with the intercepted write operation;

determining a pre-write hash value of a region of the source LU to be written by the intercepted write operation; and

determining a pre-write hash value of the source LU;

performing the write operation to source LU; and

determining an updated hash value of the source LU.

4. The method of claim 1 , wherein generating at least one of the first hash values and the second hash values comprises generating a cyclic redundancy check (CRC) value.

5. The method of claim 3 , wherein determining an updated hash value of the source LU comprises:

updating the hash value of the source LU based upon the pre-write hash value of the source LU, the hash value of the data associated with the intercepted write operation, and the pre-write hash value of the region of the source LU to be written by the write operation.

6. The method of claim 2 , wherein generating a snapshot data replica comprises:

generating a snapshot data replica at the source subsystem and writing the snapshot data replica to the target subsystem;

determining a snapshot hash value associated with the snapshot data replica; and

saving the snapshot hash value associated with the snapshot data replica in the target journal as target journal metadata associated with the snapshot data replica.

7. The method of claim 6 , wherein determining a hash value associated with the snapshot data replica comprises:

determining a hash value associated with a previous snapshot data replica;

determining a hash value associated with a data difference between the previous snapshot data replica and the snapshot data replica; and

determining the hash value associated with the snapshot data replica based upon the hash value associated with the previous snapshot data replica and the hash value associated with the data difference.

8. The method of claim 1 , wherein verifying at least one of the one or more data replicas further comprises:

retrieving the at least one data replica from the replica storage in the target subsystem,

determining a hash value of the at least one retrieved data replica;

retrieving the hash value associated with the at least one retrieved data replica from the journal metadata in the target journal; and

comparing the hash value retrieved from the journal data and the determined hash value to verify the at least one retrieved data replica.

9. The method of claim 1 further comprising performing a full synchronization of the production data if the one or more of the data replicas are not verified.

10. The method of claim 1 , further comprising providing the verifying of each data replica as a Platform as a Service (PaaS).

11. 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 in operable communication with a source subsystem configured to store production data and a target subsystem configured to store replicas of the production data, the method operable to perform the operations of:

tracking one or more first hash values of the production data at respective one or more points in time (PIT);

generating one or more data replicas of the production data of the storage system at the one or more PIT;

writing the one or more data replicas, together with the corresponding one or more first hash values, from the source subsystem to the target subsystem;

storing the one or more data replicas in the target subsystem at a replica storage;

storing the one or more first hash values, in the target subsystem as metadata configured as part of target journal data associated with the respective one or more data replicas, wherein the metadata stored for a respective replica generated at a given PIT corresponds to the first hash value of production data taken at the given PIT; and

verifying each data replica stored in the target subsystem based upon comparing the respective first hash value retrieved from the target journal data, with a respective second hash value generated based on the respective data replica stored in the replica storage of the target subsystem, wherein verifying each data replica comprises at least one of:

periodically verifying the one or more data replicas at determined time intervals;

dynamically verifying the one or more data replicas during idle time of the storage system; and

verifying the one or more data replicas before performing a roll back operation employing the one or more data replicas to roll back production data of the storage system.

12. The system of claim 11 , wherein the storage system is further operable to perform at least one of:

generating a continuous data replica each time the production data is modified; and

generating a snapshot data replica at a determined time interval.

13. The system of claim 12 , wherein for generating a continuous data replica, the storage system if further operable to perform the operation of:

intercepting, at the source subsystem of the data protection system, a write operation to the source LU;

configuring the source subsystem for:

determining a hash value of data associated with the intercepted write operation;

determining a pre-write hash value of a region of the source LU to be written by the intercepted write operation;

determining a pre-write hash value of the source LU;

performing the write operation to the source LU;

determining an updated hash value of the source LU.

14. The system of claim 11 , wherein the storage system is further operable to perform the operations of:

generating at least one of the first hash values and the second hash values by generating a cyclic redundancy check (CRC) value; and

updating the hash value of the source LU based upon the pre-write hash value of the source LU, the hash value of the data associated with the intercepted write operation, and the pre-write hash value of the region of the source LU to be written by the write operation.

15. The system of claim 12 , wherein, for generating a snapshot data replica, the storage system is further operable to perform the operations of:

generating a snapshot data replica at the source subsystem and writing the snapshot data replica to the target subsystem;

determining a snapshot hash value associated with the snapshot data replica;

saving the snapshot hash value associated with the snapshot data replica in the target journal as target journal metadata associated with the snapshot data replica;

retrieving a given data replica from the replica storage in the target subsystem;

determining a hash value of the retrieved data replica;

retrieving the snapshot hash value associated with the snapshot data replica from the target journal metadata; and

comparing the snapshot hash value retrieved from the target journal data and the determined hash value of the given data replica to verify the given data replica data replica.

16. 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 in operable communication with a source subsystem configured to store production data and a target subsystem configured to store replicas of the production data, the computer program product comprising:

computer program code for tracking one or ore first hash values of the production data of the source subsystem at respective one or more points in time (PIT);

computer program code for generating one or more data replicas of the production data of the storage system at the one or more PIT;

computer program code for writing the one or more data replicas, together with the corresponding one or more first hash values, form the source subsystem to the target subsystem;

computer program code for storing the one or more data replicas in the target subsystem at a replica storage;

computer program code for storing the one or more first hash values, in the target subsystem, as metadata configured as part of target journal data associated with the respective one or more data replicas, wherein the metadata stored for a respective replica generated at a given PIT corresponds to the first has value of production data taken at the given PIT; and

computer program code for verifying each data replica stored in the target subsystem based upon comparing the respective first hash value retrieved from the target journal data with a respective second hash value generated based on the respective data replica stored in the replica storage of the target subsystem, wherein verifying each data replica comprises at least one of:

periodically verifying the one or more data replicas at determined time intervals;

dynamically verifying the one or more data replicas during idle time of the storage system; and

verifying the one or more data replicas before performing a roll back operation employing the one or more data replicas to roll back production data of the storage system.

17. The computer program product of claim 16 , wherein the storage system is further operable to perform at least one of:

generating a continuous data replica each time the production data is modified; and

generating a snapshot data replica at a determined time interval.

18. The computer program product of claim 17 , wherein:

for generating a continuous data replica, the computer program product further comprises:

computer program code for intercepting, at the source subsystem of the data protection system a write operation to the source LU;

computer program code for configuring the source subsystem for:

determining a hash value of data associated with the intercepted write operation;

determining a pre-write hash value of a region of the source LU to be written by the intercepted write operation;

determining a pre-write hash value of the source LU;

computer program code for performing the write operation to the source LU; and

computer program code for determining an updated hash value of the source LU; and

for generating a snapshot data replica, the computer program product further comprises:

computer program code for determining a snapshot hash value associated with the snapshot data replica;

computer program code for saving the snapshot hash value associated with the snapshot data replica in the target journal as target journal metadata associated with the snapshot data replica;

computer program code for retrieving either the snapshot data replica or continuous data replica from the replica storage in the target subsystem;

computer program code for determining a hash value of the retrieved data replica;

computer program code for retrieving the hash value associated with the retrieved data replica from the journal metadata in the target journal;

computer program code for comparing the hash value retrieved from the journal data and the determined hash value to verify the retrieved data replica;

computer program code for the generating at least one of the first hash values and the second hash values by generating a cyclic redundancy check (CRC) value; and

computer program code for updating the hash value of source LU based upon the pre-write hash value of the source LU, the hash value of the data associated with the intercepted write operation, and the pre-write hash value of the region of the source logical unit to be written by the write operation.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2016
From: BARUCH, LEEHOD; NATANZON, ASSAF; SHEMER, JEHUDA; LIEBERMAN, AMIT; BIGMAN, RON
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 039916/0683 →
Cited By (3)
US 12,265,802 US 12,339,963 US 12,481,703