IP Library › Granted Patent US 10,108,647
Granted Patent B1
US 10,108,647 · App. 14/558,619 · Granted Oct 23, 2018

Method and system for providing instant access of backup data

Inventors: Mv Kiran Kumar (Karnataka, IN); Shelesh Chopra (Karnataka, IN); Vladimir Mandic (San Jose, CA); Chikkam Satyam (Bangalore, IN); Arnab Bose (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F17/30321G06F11/1448
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,108,647
App. No.
14/558,619
Filed
Dec 2, 2014
Granted
Oct 23, 2018
Kind
B1
Art Unit
2162
USPC
707/640
Abstract

According to one embodiment, a restore module of a storage system receives a request from a client device over a network for restoring a data stream stored in the storage system. In response to the request, the restore module identifies a sparse disk file stored in the storage system, where the sparse disk file represents the requested data stream. The sparse disk file includes payload blocks sparsely located and intertwined with metadata of the sparse disk file. A converter executed in a memory by a processor of the storage system converts the sparse disk file into a native disk file based on the payload blocks of the sparse disk file, using a fast-copy method without having physically copying data content of the payload blocks. A block-based accessing interface is provided to the client to allow the client accessing the native disk file. Each block of content represented by the native disk is accessed based on a block identifier and an offset indicating a location of the block within the native disk file.

Claims (52)

1. A computer-implemented method for restoring backup data, the method comprising:

receiving, by a restore module loaded in a memory and executed by a processor of a storage system, a request from a client device over a network for restoring a data stream stored in the storage system;

in response to the request, identifying by the restore module a sparse disk file stored in the storage system, the sparse disk file representing the requested data stream, wherein the sparse disk file includes a plurality of payload blocks sparsely located and intertwined with metadata of the sparse disk file, wherein the sparse disk file includes a block allocation table (BAT) having a plurality of block entries, each block entry corresponding to one of a plurality of data blocks within the payload blocks of the sparse disk file;

converting, by a converter executed in the memory by the processor of the storage system, the sparse disk file into a native disk file based on the payload blocks of the sparse disk file, wherein creating the native disk file includes locating, within the sparse disk file, a payload block corresponding to each of the plurality of block entries based on an offset of the block entry, and performing a fast-copy and rebase operation from the corresponding payload block to a new data block in the native disk file, wherein the native disk file has a size equal to a disk size specified by the sparse disk file; and

providing a block-based accessing interface to the client to allow the client accessing the native disk file, wherein each block of content represented by the native disk file is accessed based on a block identifier and an offset indicating a location of the block within the native disk file.

2. The method of claim 1 , wherein the sparse disk file is a virtual hard disk (VHD) compatible file.

3. The method of claim 1 , wherein the block-based accessing interface is one of a small computer system interface (SCSI) and Fibre channel interface.

4. The method of claim 1 , wherein converting the sparse disk file into a native disk file comprises:

parsing the sparse disk file to identify the block allocation table within the sparse disk file; and

for each of the block entries of the block allocation table, retrieving an offset from the block entry,

accessing a corresponding data block from the payload blocks of the sparse disk file based on the retrieved offset, and

determining a pointer of the corresponding data block, wherein the pointer of the data block is used to represent the data block without having to physically copy content of the data block.

5. The method of claim 4 , further comprising:

prior to parsing the sparse disk file, creating the native disk file as a place holder; and

for each of the block entries of the block allocation table of the sparse disk file, writing the pointer of the corresponding data block in a disk and volume content segment of the native disk file.

6. The method of claim 5 , further comprising writing a master boot record and a partition table of the native disk file based on the disk and volume content segment.

7. The method of claim 5 , wherein a pointer of a data block links to one of a plurality of payload blocks of the sparse disk file, without physically copying a corresponding payload block.

8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for restoring backup data, the operations comprising:

receiving, by a restore module loaded into a memory and executed by a processor of a storage system, a request from a client device over a network for restoring a data stream stored in the storage system;

in response to the request, identifying by the restore module a sparse disk file stored in the storage system, the sparse disk file representing the requested data stream, wherein the sparse disk file includes a plurality of payload blocks sparsely located and intertwined with metadata of the sparse disk file, wherein the sparse disk file includes a block allocation table (BAT) having a plurality of block entries, each block entry corresponding to one of a plurality of data blocks within the payload blocks of the sparse disk file;

converting, by a converter executed in the memory by the processor of the storage system, the sparse disk file into a native disk file based on the payload blocks of the sparse disk file, wherein creating the native disk file includes locating, within the sparse disk file, a payload block corresponding to each of the plurality of block entries based on an offset of the block entry, and performing a fast-copy and rebase operation from the corresponding payload block to a new data block in the native disk file, wherein the native disk file has a size equal to a disk size specified by the sparse disk file; and

providing a block-based accessing interface to the client to allow the client accessing the native disk file, wherein each block of content represented by the native disk file is accessed based on a block identifier and an offset indicating a location of the block within the native disk file.

9. The non-transitory machine-readable medium of claim 8 , wherein the sparse disk file is a virtual hard disk (VHD) compatible file.

10. The non-transitory machine-readable medium of claim 8 , wherein the block-based accessing interface is one of a small computer system interface (SCSI) and Fibre channel interface.

11. The non-transitory machine-readable medium of claim 8 , wherein converting the sparse disk file into a native disk file comprises:

parsing the sparse disk file to identify the block allocation table within the sparse disk file; and

for each of the block entries of the block allocation table,

retrieving an offset from the block entry,

accessing a corresponding data block from the payload blocks of the sparse disk file based on the retrieved offset, and

determining a pointer of the corresponding data block, wherein the pointer of the data block is used to represent the data block without having to physically copy content of the data block.

12. The non-transitory machine-readable medium of claim 11 , wherein the operations further comprise:

prior to parsing the sparse disk file, creating the native disk file as a place holder; and

for each of the block entries of the block allocation table of the sparse disk file, writing the pointer of the corresponding data block in a disk and volume content segment of the native disk file.

13. The non-transitory machine-readable medium of claim 12 , wherein the operations further comprise writing a master boot record and a partition table of the native disk file based on the disk and volume content segment.

14. The non-transitory machine-readable medium of claim 12 , wherein a pointer of a data block links to one of a plurality of payload blocks of the sparse disk file, without physically copying a corresponding payload block.

15. A storage system, comprising:

a processor;

a memory;

a restore module executed in the memory by the processor to receive a request from a client device over a network for restoring a data stream stored in the storage system, and in response to the request, to identify a sparse disk file stored in the storage system, the sparse disk file representing the requested data stream, wherein the sparse disk file includes a plurality of payload blocks sparsely located and intertwined with metadata of the sparse disk file, wherein the sparse disk file includes a block allocation table (BAT) having a plurality of block entries, each block entry corresponding to one of a plurality of data blocks within the payload blocks of the sparse disk file;

a converter executed in the memory by the processor to convert the sparse disk file into a native disk file based on the payload blocks of the sparse disk file, wherein creating the native disk file includes locating, within the sparse disk file, a payload block corresponding to each of the plurality of block entries based on an offset of the block entry, and performing a fast-cop and rebase operation from the corresponding payload block to a new data block in the native disk file, wherein the native disk file has a size equal to a disk size specified by the sparse disk file; and

a block-based accessing interface to allow a client accessing the native disk file, wherein each block of content represented by the native disk file is accessed based on a block identifier and an offset indicating a location of the block within the native disk file.

16. The system of claim 15 , wherein the sparse disk file is a virtual hard disk (VHD) compatible file.

17. The system of claim 15 , wherein the block-based accessing interface is one of a small computer system interface (SCSI) and Fibre channel interface.

18. The system of claim 15 , wherein the converter is adapted to

parse the sparse disk file to identify the block allocation table within the sparse disk file, and

for each of the block entries of the block allocation table,

retrieve an offset from the block entry,

access a corresponding data block from the payload blocks of the sparse disk file based on the retrieved offset, and

determine a pointer of the corresponding data block, wherein the pointer of the data block is used to represent the data block without having to physically copy content of the data block.

19. The system of claim 18 , wherein the converter is adapted to prior to parsing the sparse disk file, create the native disk file as a place holder, and for each of the block entries of the block allocation table of the sparse disk file, write the pointer of the corresponding data block in a disk and volume content segment of the native disk file.

20. The system of claim 19 , wherein the converter is further to write a master boot record and a partition table of the native disk file based on the disk and volume content segment.

21. The system of claim 19 , wherein a pointer of a data block links to one of a plurality of payload blocks of the sparse disk file, without physically copying a corresponding payload block.

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 Dec 2, 2014
From: KUMAR, MV KIRAN; CHOPRA, SHELESH; MANDIC, VLADIMIR; SATYAM, CHIKKAM; BOSE, ARNAB
To: EMC CORPORATION
Reel/Frame 034314/0596 →
Cited By (1)
US 12,353,357