IP Library Granted Patent US 10,503,413
Granted Patent B1
US 10,503,413 · App. 15/393,337 · Granted Dec 10, 2019

Methods and apparatus for SAN having local server storage including SSD block-based storage

Inventors: Yochai Gal (Herzliya, IL); Niko Farhi (Petah-Tikva, IL); Nir Sela (Kochav Yair, IL); Yaniv Kaul (Raanana, IL)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0619G06F3/067G06F3/0665G06F3/0689
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,503,413
App. No.
15/393,337
Granted
Dec 10, 2019
Kind
B1
Abstract

Methods and apparatus for a system including a storage array with solid state drive (SSD) storage and a controller coupled to the SSD storage. The controller may include a data system to perform input/output operations to the SSD storage, a control system coupled to the data system to control an address to hash value mapping, a routing system coupled to the control system to process commands from remote hosts, segment data into data blocks, and generate the hash values for the data blocks, and a data server associated with the routing system to receive read and write commands from a data client running on a remote host, wherein the storage array contributes a portion of the SSD storage to storage pools of a distributed elastic storage system.

Claims (43)

1. A system, comprising:

a storage array comprising:

solid state drive (SSD) storage;

a controller coupled to the SSD storage, the controller comprising:

a control system configured to:

control a mapping table of an address to a corresponding hash value;

a routing system coupled to the control system configured to receive a read command from a remote host by: instantiating a first thread that is configured to poll a TCP/IP socket and store any partial data associated with the read command in a buffer until the entire read command is stored into the buffer, and instantiating a second thread that is configured to execute the read command after the entire read command has been stored into the buffer;

a data system coupled to the control system configured to:

perform input/output operations to the SSD storage based upon at least one of physical addresses of data blocks and hash values of the data blocks; and

a data server associated with the routing system configured to:

receive the read and write commands from a data client running on the remote host,

wherein the storage array contributes a portion of the SSD storage to storage pools of a distributed elastic storage system,

wherein at least one logical volume of the storage pools is maintained as private such that the logical volume is available only to a corresponding remote host via a corresponding routing system.

2. The system according to claim 1 , wherein the data server is embedded in the routing system.

3. The system according to claim 1 , Wherein the storage array is configured to perform data deduplication.

4. The system according to claim 1 , further including establishing mirroring of storage volumes formed from the SSD storage of the storage array with storage volumes of a further storage array having SSD storage, terminating the mirroring, and decommitting space for the mirrored storage volumes on the storage array.

5. The system according to claim 1 , wherein the controller further includes a management system to communicate with a metadata manager on the remote host.

6. The system according to claim 1 , wherein the distributed elastic storage system includes storage data clients and storage data servers.

7. A method, comprising:

coupling a control system to a data system to control a mapping table of an address to a corresponding hash value;

coupling a routing system to the control system to identify and process a new read command from a remote host by: instantiating a first thread that is configured to poll a TCP/IP socket and store any partial data associated with the read command in a buffer until the entire read command is stored into the buffer, and instantiating a second thread that is configured to execute the read command after the entire read command has been stored into the buffer;

coupling a controller to solid state drive (SSD) storage of a storage array, wherein the controller includes a data system to perform input/output operations to the SSD storage based upon at least one of physical addresses of data blocks and hash values of the data blocks; and

associating a data server with the routing system to receive the read and write commands from a data client running on the remote host,

wherein the storage array contributes a portion of the SSD storage to storage pools of a distributed elastic storage system,

wherein at least one logical volume of the storage pools is maintained as private such that the logical volume is available only to a corresponding remote host via a corresponding routing system.

8. The method according to claim 7 , further including embedded the data server in the routing system.

9. The method according to claim 7 , further including configuring the storage array to perform data deduplication.

10. The method according to claim 7 , further including establishing mirroring of storage volumes formed from the SSD storage of the storage array with storage volumes of a further storage array having SSD storage, terminating the mirroring, and decommitting space for the mirrored storage volumes on the storage array.

11. The method according to claim 7 , further including using a management system to communicate with a metadata manager on the remote host.

12. The method according to claim 7 , wherein the distributed elastic storage system includes storage data clients and storage data servers.

13. An article, comprising:

a non-transitory computer readable medium baying stored instructions that enable a machine to:

control a controller coupled to solid state drive (SSD) storage of a storage array;

communicate with a control system to control a mapping table of an address to a corresponding hash value;

communicate with a routing system coupled to the control system to identify a read command from a remote host by: instantiating a first thread that is configured to poll a TCP/IP socket and store any partial data associated with the read command in a buffer until the entire read command is stored into the buffer, and instantiating a second thread that is configured to execute the read command after the entire read command has been stored into the buffer;

control a controller coupled to solid state drive (SSD) storage of a storage array, wherein the controller includes a data system to perform input/output operations to the SSD storage based upon at least one of physical addresses of data blocks and hash values of the data blocks; and

associate a data server with the routing system to receive the read and write commands from a data client running on the remote host,

wherein the storage array contributes a portion of the SSD storage to storage pools of a distributed elastic storage system,

wherein at least one logical volume of the storage pools is maintained as private such that the logical volume is available only to a corresponding data client via a corresponding routing system.

14. The article according to claim 13 , further including instructions to embed the data server in the routing system.

15. The article according to claim 13 , further including instructions to configure the storage array to perform data deduplication.

16. The article according to claim 13 , further including instructions to establish mirroring of storage volumes formed from the SSD storage of the storage array with storage volumes of a further storage array having SSD storage, terminating the mirroring, and decommitting space for the mirrored storage volumes on the storage array.

17. The article according to claim 13 , further including instructions for a management system to communicate with a metadata manager on the remote host.

Assignments (8)
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 (052216/0758) 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 IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
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 Jan 26, 2017
From: GAL, YOCHAI; FARHI, NIKO; SELA, NIR; KAUL, YANIV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041496/0229 →
Continuity (1)
Provisional Application 62344057 · Jun 1, 2016
Cited By (1)
US 12,332,845