US10503413B1ActiveUtility

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

93
Assignee: EMC IP HOLDING CO LLCPriority: Jun 1, 2016Filed: Dec 29, 2016Granted: Dec 10, 2019
Est. expiryJun 1, 2036(~9.9 yrs left)· nominal 20-yr term from priority
G06F 3/0679G06F 3/067G06F 3/0659G06F 3/0656G06F 3/0622G06F 3/061G06F 3/0665G06F 3/0689G06F 3/0619
93
PatentIndex Score
22
Cited by
51
References
17
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
       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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.