IP Library › Granted Patent US 10,019,323
Granted Patent B1
US 10,019,323 · App. 14/225,188 · Granted Jul 10, 2018

Method and system for container data recovery in a storage system

Inventors: Lan Bai (Chelsea, MI); Fabiano C. Botelho (Sunnyvale, CA); Mahesh Kamat (Milpitas, CA); Nitin Garg (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1464G06F11/1453
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,019,323
App. No.
14/225,188
Filed
Mar 25, 2014
Granted
Jul 10, 2018
Kind
B1
Art Unit
2161
USPC
707/675
Abstract

A computer-implemented method is disclosed. The method starts with determining a first container of a storage system is invalid. The method continues with the storage system setting a data recovery state for the first container to be en-queue, which indicates that data of at least one of the data segments needs to be recovered from the first container, and executing a process to recover any container having an en-queue data recovery state, and for each of the containers, to recover any valid data segment from the corresponding container. The process includes scanning the data segments of the first container to find valid data segments, moving or replicating the valid data segments to a second container, and setting the data recovery state for the first container to be complete once all the valid data segments are moved or replicated to the second container.

Claims (65)

1. A computer-implemented method, comprising:

determining that a first container of a deduplication storage system is invalid, wherein the first container contains at least a corrupted or missing data segment, wherein the first container stores data segments of the storage system having a plurality of containers, each container having a plurality of compression regions, each compression region having a plurality of data segments compressed and stored therein, including deduplicated segments, wherein at least one deduplicated segment is referenced by a plurality of files, and wherein determining that the first container of the deduplication storage system being invalid includes:

(i) checking, by a container recovery module during a data scrubbing operation, data integrity of containers of the storage system periodically, and determining the first container being invalid based on the data integrity check of the first container,

(ii) reading, by a deduplication eliminator during a deduplication operation, the first container of the storage system to locate a data segment, and checking a checksum associated with the first container to determine that the first container is invalid, and

(iii) looking up, by an indexing module during an indexing operation, an index of the storage system to locate a specific data segment within the first container based on a fingerprint of the specific data segment, the fingerprint being an identifier based on content of the specific data segment, and identifying that the first container including the specific data segment has been marked as invalid, wherein the data scrubbing operation, the deduplication operation, and the indexing operation are performed independently via different threads;

setting a data recovery state for the first container to be en-queue, which indicates that data of at least one of the data segments needs to be recovered from the first container;

executing a first process to recover any container having an en-queue data recovery state, and for each of the containers having an en-queue data recovery state, to recover any valid data segment from the corresponding container, including:

scanning the data segments of the first container to find valid data segments;

moving or replicating the valid data segments to a second container; and

setting the data recovery state for the first container to be complete once all the valid data segments are moved or replicated to the second container; and

executing a second process to scan any container having a complete data recovery state to reclaim storage space, including:

determining that the data recovery state for the first container is complete;

copying content of the first container to a file;

deleting the first container; and

reclaiming storage space of the first container.

2. The computer-implemented method of claim 1 , wherein the second process further comprises:

checking whether fingerprints associated with the first container are associated with any valid container prior to deleting the first container; and

reporting a missing data segment corresponding to any data segment with fingerprint not associated with any valid container.

3. The computer-implemented method of claim 1 , wherein the second process further comprises:

sending a fingerprint that is not associated with any valid container to a replication storage, wherein the replication storage searches for a data segment corresponding to the fingerprint within and sends the data segment corresponding to the fingerprint to the storage system if the data segment is in a third container that is valid; and

writing the received data segment received from the replication storage to the storage system.

4. A storage system, comprising:

a memory configured to store data and instructions; and

a processor configured to execute a deduplication storage engine stored in the memory, the deduplication storage engine configured to:

determine that a first container of a deduplication storage system is invalid, wherein the first container contains at least a corrupted or missing data segment, wherein the first container stores data segments of the storage system having a plurality of containers, each container having a plurality of compression regions, each compression region having a plurality of data segments compressed and stored therein, including deduplicated segments, wherein at least one deduplicated segment is referenced by a plurality of files, and wherein determining that the first container of the deduplication storage system being invalid includes:

(i) checking, by a container recovery module during a data scrubbing operation, data integrity of containers of the storage system periodically, and determining the first container being invalid based on the data integrity check of the first container,

(ii) reading, by a deduplication eliminator during a deduplication operation, the first container of the storage system to locate a data segment, and checking a checksum associated with the first container to determine that the first container is invalid, and

(iii) looking up, by an indexing module during an indexing operation, an index of the storage system to locate a specific data segment within the first container based on a fingerprint of the specific data segment, the fingerprint being an identifier based on content of the specific data segment, and identifying that the first container including the specific data segment has been marked as invalid, wherein the data scrubbing operation, the deduplication operation, and the indexing operation are performed independently via different threads; and

set a data recovery state for the first container to be en-queue, which indicates that data of at least one of the data segments needs to be recovered from the first container;

execute a first process to recover any container having an en-queue data recovery state, and for each of the containers having an en-queue data recovery state, to recover any valid data segment from the corresponding container, including:

scan the data segments of the first container to find valid data segments;

move or replicate the valid data segments to a second container; and

set the data recovery state for the first container to be complete once all the valid data segments are moved or replicated to the second container; and

execute a second process to scan any container having a complete data recovery state to reclaim storage space, including:

determining that the data recovery state for the first container is complete;

copying content of the first container to a file;

deleting the first container; and

reclaiming storage space of the first container.

5. The storage system of claim 4 , wherein the second process further comprises:

checking whether fingerprints associated with the first container are associated with any valid container prior to deleting the first container; and

reporting a missing data segment corresponding to any data segment with fingerprint not associated with any valid container.

6. A non-transitory computer-readable medium having instructions stored therein, which when executed by a processor, causes the processor to perform operations, the operations comprising:

determining that a first container of a deduplication storage system is invalid, wherein the first container contains at least a corrupted or missing data segment, wherein the first container stores data segments of the storage system having a plurality of containers, each container having a plurality of compression regions, each compression region having a plurality of data segments compressed and stored therein, including deduplicated segments, wherein at least one deduplicated segment is referenced by a plurality of files, and wherein determining that the first container of the deduplication storage system being invalid includes:

(i) checking, by a container recovery module during a data scrubbing operation, data integrity of containers of the storage system periodically, and determining the first container being invalid based on the data integrity check of the first container,

(ii) reading, by a deduplication eliminator during a deduplication operation, the first container of the storage system to locate a data segment, and checking a checksum associated with the first container to determine that the first container is invalid, and

(iii) looking up, by an indexing module during an indexing operation, an index of the storage system to locate a specific data segment within the first container based on a fingerprint of the specific data segment, the fingerprint being an identifier based on content of the specific data segment, and identifying that the first container including the specific data segment has been marked as invalid, wherein the data scrubbing operation, the deduplication operation, and the indexing operation are performed independently via different threads;

setting a data recovery state for the first container to be en-queue, which indicates that data of at least one of the data segments needs to be recovered from the first container;

executing a first process to recover any container having an en-queue data recovery state, and for each of the containers having an en-queue data recovery state, to recover any valid data segment from the corresponding container, including:

scanning the data segments of the first container to find valid data segments;

moving or replicating the valid data segments to a second container; and

setting the data recovery state for the first container to be complete once all the valid data segments are moved or replicated to the second container; and

executing a second process to scan any container having a complete data recovery state to reclaim storage space, including:

determining that the data recovery state for the first container is complete;

copying content of the first container to a file;

deleting the first container; and

reclaiming storage space of the first container.

7. The non-transitory computer-readable medium of claim 6 , wherein the second process further comprises:

checking whether fingerprints associated with the first container are associated with any valid container prior to deleting the first container; and

reporting a missing data segment corresponding to any data segment with fingerprint not associated with any valid container.

8. The storage system of claim 4 , wherein the second process further comprises:

sending a fingerprint that is not associated with any valid container to a replication storage, wherein the replication storage searches for a data segment corresponding to the fingerprint within and sends the data segment corresponding to the fingerprint to the storage system if the data segment is in a third container that is valid; and

writing the received data segment received from the replication storage to the storage system.

9. The non-transitory computer-readable medium of claim 6 , wherein the second process further comprises:

sending a fingerprint that is not associated with any valid container to a replication storage, wherein the replication storage searches for a data segment corresponding to the fingerprint within and sends the data segment corresponding to the fingerprint to the storage system if the data segment is in a third container that is valid; and

writing the received data segment received from the replication storage to the storage system.

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 Mar 26, 2014
From: BAI, LAN; BOTELHO, FABIANO C.; KAMAT, MAHESH; GARG, NITIN
To: EMC CORPORATION
Reel/Frame 032528/0211 →
Cited By (5)
US 12,346,205 US 12,519,824 US 12,524,395 US 12,664,027 US 12,681,656