IP Library › Granted Patent US 10,747,474
Granted Patent B2
US 10,747,474 · App. 16/166,637 · Granted Aug 18, 2020

Online cluster expansion for storage system with decoupled logical and physical capacity

Inventors: Zvi Schneider (Tel Aviv, IL); Uri Shabi (Tel Mond, IL); Maor Rahamim (Ramla, IL)
Assignee: EMC IP Holding Company LLC
G06F3/067G06F3/061G06F3/0607G06F3/0631G06F3/0652G06F3/0662
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,747,474
App. No.
16/166,637
Granted
Aug 18, 2020
Kind
B2
Abstract

An apparatus in one embodiment comprises at least one processing device comprising a processor coupled to a memory. The processing device is configured, in conjunction with an online cluster expansion process for a clustered storage system having an address space distributed across a set of storage controllers each associated with one or more storage devices, to modify the distribution of the address space across the set of storage controllers responsive to adding at least one of compute and storage capacity to the set of storage controllers of the clustered storage system. The processing device is also configured to identify a set of pending input-output requests directed to deletion of data in the clustered storage system, and to execute the set of pending input-output requests prior to relocating data in the clustered storage system based at least in part on the modified distribution of the address space.

Claims (42)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured, in conjunction with an online cluster expansion process for a clustered storage system having an address space distributed across a set of storage controllers each associated with one or more storage devices:

to modify the distribution of the address space across the set of storage controllers responsive to adding at least one of compute and storage capacity to the set of storage controllers of the clustered storage system;

to identify a set of pending input-output requests directed to deletion of data in the clustered storage system;

to execute the set of pending input-output requests directed to deletion of data in the clustered storage system prior to relocating data in the clustered storage system based at least in part on the modified distribution of the address space;

to receive, at a given one of the set of storage controllers, a given input-output request directed to data associated with a given content-based signature that is in a given portion of the address space allocated to the given storage controller in the modified distribution of the address space; and

to modify a manner in which the given input-output request is processed at the given storage controller based at least in part on whether the given content-based signature was in a portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space.

2. The apparatus of claim 1 wherein the storage devices associated with the set of storage controllers of the clustered storage system are configured to store user data pages and metadata pages, each of the user data pages having a logical address and a content-based signature derived from content of that user data page, each of the metadata pages characterizing a plurality of the user data pages and associating the content-based signatures of those user data pages with respective physical blocks in the storage devices.

3. The apparatus of claim 2 wherein the address space is distributed across the set of storage controllers of the clustered storage system by allocating slices of the address space across the set of storage controllers of the clustered storage system, each slice comprising a set of the content-based signatures.

4. The apparatus of claim 3 wherein the set of storage controllers are configured to decouple release of logical addresses from release of the physical blocks corresponding to the logical addresses, wherein decoupling release of the logical addresses from release of the physical blocks corresponding to the logical addresses comprises at least one of (i) releasing the logical addresses in a different order than the physical blocks corresponding to the logical addresses and (ii) releasing the logical addresses at different times than the physical blocks corresponding to the logical addresses.

5. The apparatus of claim 4 wherein identifying the set of pending input-output requests directed to deletion of data in the clustered storage system comprises identifying pending dereferencing operations for respective ones of the physical blocks corresponding to released logical addresses.

6. The apparatus of claim 1 wherein the at least one processing device is further configured to relocate data in the clustered storage system based at least in part on the modified distribution of the address space.

7. The apparatus of claim 6 wherein the at least one processing device is further configured, for a given portion of data on a first storage device associated with a first one of the set of storage controllers that is part of a first portion of the address space relocated from the first storage device associated with the first storage controller to a second storage device associated with the first storage controller or a second one of the set of storage controllers, to remove the given portion of the data from the first storage device.

8. The apparatus of claim 6 wherein the at least one processing device is further configured to determine if the given content-based signature was in a portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space.

9. The apparatus of claim 8 wherein the at least one processing device is further configured to update metadata associating the content-based signature with one or more physical blocks in one or more of the storage devices associated with the given storage controller in accordance with the given input-output request responsive to determining that the given content-based signature was in the portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space.

10. The apparatus of claim 8 wherein the at least one processing device is further configured to determine if the data associated with the given content-based signature has already been relocated from one or more storage devices associated with another one of the set of storage controllers to one or more of the storage devices associated with the given storage controller responsive to determining that the given content-based signature was not in the portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space.

11. The apparatus of claim 10 wherein the at least one processing device is further configured to update metadata associating the content-based signature with one or more physical blocks in one or more of the storage devices associated with the given storage controller in accordance with the given input-output request responsive to determining that the data associated with the given content-based signature has already been relocated to the storage devices associated with the given storage controller.

12. The apparatus of claim 10 wherein the at least one processing device is further configured to send a request to the other storage controller to update metadata associating the content-based signature with one or more physical blocks in the storage devices associated with the other storage controller in accordance with the given input-output request responsive to determining that the data associated with the given content-based signature has not already been relocated to the storage devices associated with the given storage controller.

13. The apparatus of claim 1 wherein the processing device is implemented in one of:

a host device configured to communicate over a network with at least one storage system that comprises at least one of the set of storage controllers; and

at least one of the set of storage controllers.

14. A method comprising:

in conjunction with an online cluster expansion process for a clustered storage system having an address space distributed across a set of storage controllers each associated with one or more storage devices, modifying the distribution of the address space across the set of storage controllers responsive to adding at least one of compute and storage capacity to the set of storage controllers of the clustered storage system;

identifying a set of pending input-output requests directed to deletion of data in the clustered storage system;

executing the set of pending input-output requests directed to deletion of data in the clustered storage system prior to relocating data in the clustered storage system based at least in part on the modified distribution of the address space;

receiving, at a given one of the set of storage controllers, a given input-output request directed to data associated with a given content-based signature that is in a given portion of the address space allocated to the given storage controller in the modified distribution of the address space; and

modifying a manner in which the given input-output request is processed at the given storage controller based at least in part on whether the given content-based signature was in a portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space;

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

15. The method of claim 14 wherein the storage devices associated with the set of storage controllers of the clustered storage system are configured to store user data pages and metadata pages, each of the user data pages having a logical address and a content-based signature derived from content of that user data page, each of the metadata pages characterizing a plurality of the user data pages and associating the content-based signatures of those user data pages with respective physical blocks in the storage devices, and wherein the address space is distributed across the set of storage controllers of the clustered storage system by allocating slices of the address space across the set of storage controllers of the clustered storage system, each slice comprising a set of the content-based signatures.

16. The method of claim 15 wherein the set of storage controllers are configured to decouple release of logical addresses from release of the physical blocks corresponding to the logical addresses, wherein decoupling release of the logical addresses from release of the physical blocks corresponding to the logical addresses comprises at least one of (i) releasing the logical addresses in a different order than the physical blocks corresponding to the logical addresses and (ii) releasing the logical addresses at different times than the physical blocks corresponding to the logical addresses, and wherein identifying the set of pending input-output requests directed to deletion of data in the clustered storage system comprises identifying pending dereferencing operations for respective ones of the physical blocks corresponding to released logical addresses.

17. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:

in conjunction with an online cluster expansion process for a clustered storage system having an address space distributed across a set of storage controllers each associated with one or more storage devices, to modify the distribution of the address space across the set of storage controllers responsive to adding at least one of compute and storage capacity to the set of storage controllers of the clustered storage system;

to identify a set of pending input-output requests directed to deletion of data in the clustered storage system;

to execute the set of pending input-output requests directed to deletion of data in the clustered storage system prior to relocating data in the clustered storage system based at least in part on the modified distribution of the address space;

to receive, at a given one of the set of storage controllers, a given input-output request directed to data associated with a given content-based signature that is in a given portion of the address space allocated to the given storage controller in the modified distribution of the address space; and

to modify a manner in which the given input-output request is processed at the given storage controller based at least in part on whether the given content-based signature was in a portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space.

18. The computer program product of claim 17 wherein the storage devices associated with the set of storage controllers of the clustered storage system are configured to store user data pages and metadata pages, each of the user data pages having a logical address and a content-based signature derived from content of that user data page, each of the metadata pages characterizing a plurality of the user data pages and associating the content-based signatures of those user data pages with respective physical blocks in the storage devices, and wherein the address space is distributed across the set of storage controllers of the clustered storage system by allocating slices of the address space across the set of storage controllers of the clustered storage system, each slice comprising a set of the content-based signatures.

19. The computer program product of claim 18 wherein the set of storage controllers are configured to decouple release of logical addresses from release of the physical blocks corresponding to the logical addresses, wherein decoupling release of the logical addresses from release of the physical blocks corresponding to the logical addresses comprises at least one of (i) releasing the logical addresses in a different order than the physical blocks corresponding to the logical addresses and (ii) releasing the logical addresses at different times than the physical blocks corresponding to the logical addresses, and wherein identifying the set of pending input-output requests directed to deletion of data in the clustered storage system comprises identifying pending dereferencing operations for respective ones of the physical blocks corresponding to released logical addresses.

20. The computer program product of claim 17 wherein the program code when executed by said at least one processing device further causes said at least one processing device:

to relocate data in the clustered storage system based at least in part on the modified distribution of the address space; and

to determine if the given content-based signature was in a portion of the address space allocated to the given storage controller prior to the modification of the distribution of the address space.

Assignments (4)
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 →
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 Oct 22, 2018
From: SCHNEIDER, ZVI; SHABI, URI; RAHAMIM, MAOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047260/0982 →
Continuity (1)
Related Publication 20200125265A1 · Apr 23, 2020