IP Library Granted Patent US 11,494,100
Granted Patent B2
US 11,494,100 · App. 16/588,903 · Granted Nov 8, 2022

Method, device and computer program product for storage management

Inventors: Mengze Liao (Shanghai, CN); Jing Yu (Shanghai, CN); Ming Zhang (Shanghai, CN); Yongsheng Guo (Shanghai, CN); Jin Ru Yan (Shanghai, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/064G06F3/065G06F3/0619G06F3/0667G06F3/0673
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 11,494,100
App. No.
16/588,903
Granted
Nov 8, 2022
Kind
B2
Abstract

According to embodiments of the present disclosure, a method, device and computer program product for storage management are proposed. The method comprises: obtaining, in a first virtual storage device, a first portion storing a source file, the source file being used to update a target file; determining a second portion in the first virtual storage device, data stored in the second portion being changed relative to data stored in a second virtual storage device, the data stored in the second virtual storage device including the target file; determining a changed portion based on the first portion and the second portion, the changed portion indicating changed data of the source file relative to the target file; and updating the target file based on the changed portion. Therefore, the present solution can reduce data transmission and resource consumption.

Claims (44)

1. A method for storage management, comprising: obtaining, in a first virtual storage device, a first portion storing a source file, the source file being used to update a target file, wherein the first virtual storage device includes a plurality of storage blocks; determining a second portion in the first virtual storage device, data stored in the second portion being changed relative to data stored in a second virtual storage device, the data stored in the second virtual storage device including the target file, wherein determining the second portion comprises: generating a first snapshot of the first virtual storage device at a first time point, generating a second snapshot of the second virtual storage device at the first time point, determining a first intermediate second portion, generating a third snapshot of the first virtual storage device at a second time point, generating a fourth snapshot of the second virtual storage device at the second time point, determining a second intermediate second portion, and generating the second portion by combining the first intermediate second portion and the second intermediate second portion; determining a changed portion based on the first portion and the second portion, wherein determining the changed portion includes recording changes of data stored in the first virtual storage device relative to data stored in the second virtual storage device using an IO device driver, the changed portion indicating changed data of the source file relative to the target file; and updating the target file based on the changed portion.

2. The method of claim 1 , further comprising:

determining, in the second virtual storage device, a third portion storing the target file.

3. The method of claim 1 , wherein obtaining the first portion comprises:

mapping the source file to a corresponding storage block among the plurality of storage blocks; and

determining the first portion based on the corresponding storage block.

4. The method of claim 1 , wherein determining the second portion comprises:

determining the second portion by comparing the first snapshot with the second snapshot.

5. The method of claim 1 , wherein determining the changed portion comprises:

determining an overlapped portion between the first portion and the second portion as the changed portion.

6. The method of claim 2 , wherein the second virtual storage device comprises a plurality of storage blocks, and determining the third portion comprises:

mapping the target file to a corresponding storage block among the plurality of storage blocks; and

determining the third portion based on the corresponding storage block.

7. The method of claim 2 , wherein updating the target file comprises:

in response to the changed portion indicating the source file does not contain changed data relative to the target file, updating the target file based on the first portion, the second portion, the third portion, and data stored in the second virtual storage device and associated with the target file.

8. The method of claim 2 , wherein updating the target file comprises:

in response to the changed portion indicating the source file contains changed data relative to the target file, obtaining data in the changed portion in the source file based on the changed portion; and

updating the target file based on data in the changed portion in the source file, the first portion, the second portion, the third portion, and data stored in the second virtual storage device and associated with the target file.

9. A device for storage management, comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts comprising: obtaining, in a first virtual storage device, a first portion storing a source file, the source file being used to update a target file, wherein the first virtual storage device comprises a plurality of storage blocks, and; determining a second portion in the first virtual storage device, data stored in the second portion being changed relative to data stored in a second virtual storage device, data stored in the second virtual storage device including the target file, wherein determining the second portion comprises: generating a first snapshot of the first virtual storage device at a first time point, generating a second snapshot of the second virtual storage device at the first time point, determining a first intermediate second portion, generating a third snapshot of the first virtual storage device at a second time point, generating a fourth snapshot of the second virtual storage device at the second time point, determining a second intermediate second portion, and generating the second portion by combining the first intermediate second portion and the second intermediate second portion; determining a changed portion based on the first portion and the second portion, wherein determining the changed portion includes recording changes of data stored in the first virtual storage device relative to data stored in the second virtual storage device using an IO device driver, the changed portion indicating changed data of the source file relative to the target file; and updating the target file based on the changed portion.

10. The device of claim 9 , the acts further comprising:

determining, in the second virtual storage device, a third portion storing the target file.

11. The device of claim 9 , wherein obtaining the first portion comprises:

mapping the source file to a corresponding storage block among the plurality of storage blocks; and

determining the first portion based on the corresponding storage block.

12. The device of claim 9 , wherein determining the second portion comprises:

determining the second portion by comparing the first snapshot with the second snapshot.

13. The device of claim 9 , wherein determining the changed portion comprises:

determining an overlapped portion between the first portion and the second portion as the changed portion.

14. The device of claim 10 , wherein the second virtual storage device comprises a plurality of storage blocks, and determining the third portion comprises:

mapping the target file to a corresponding storage block among the plurality of storage blocks; and

determining the third portion based on the corresponding storage block.

15. The device of claim 10 , wherein updating the target file comprises:

in response to the changed portion indicating the source file does not contain changed data relative to the target file, updating the target file based on the first portion, the second portion, the third portion, and data stored in the second virtual storage device and associated with the target file.

16. The device of claim 10 , wherein updating the target file comprises:

in response to the changed portion indicating the source file contains changed data relative to the target file, obtaining data in the changed portion in the source file based on the changed portion; and

updating the target file based on data in the changed portion in the source file, the first portion, the second portion, the third portion, and data stored in the second virtual storage device and associated with the target file.

17. A computer program product, tangibly stored on a non-transient computer readable medium and comprising machine executable instructions which, when executed, cause a machine to implement a method for storage management, the method comprising: obtaining, in a first virtual storage device, a first portion storing a source file, the source file being used to update a target file, the first virtual storage device comprises a plurality of storage blocks, and; determining a second portion in the first virtual storage device, data stored in the second portion being changed relative to data stored in a second virtual storage device, the data stored in the second virtual storage device including the target file, wherein determining the second portion comprises: generating a first snapshot of the first virtual storage device at a first time point, generating a second snapshot of the second virtual storage device at the first time point, determining a first intermediate second portion, generating a third snapshot of the first virtual storage device at a second time point, generating a fourth snapshot of the second virtual storage device at the second time point, determining a second intermediate second portion, and generating the second portion by combining the first intermediate second portion and the second intermediate second portion; determining a changed portion based on the first portion and the second portion, wherein determining the changed portion includes recording changes of data stored in the first virtual storage device relative to data stored in the second virtual storage device using an IO device driver, the changed portion indicating changed data of the source file relative to the target file; and updating the target file based on the changed portion.

18. The computer program product of claim 17 , wherein the method further comprises:

determining, in the second virtual storage device, a third portion storing the target file.

19. The computer program product of claim 17 , wherein obtaining the first portion comprises:

mapping the source file to a corresponding storage block among the plurality of storage blocks; and

determining the first portion based on the corresponding storage block.

20. The computer program product of claim 17 , wherein determining the second portion comprises:

determining the second portion by comparing the first snapshot with the second snapshot.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2019
From: LIAO, MENGZE; YU, JING; ZHANG, MING; GUO, YONGSHENG; YAN, JINRU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050619/0888 →