Patent Publication Number: US-10318426-B1

Title: Cloud capable storage platform with computation operating environment for storage and generic applications

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     N/A 
     FIELD OF THE INVENTION 
     This invention is generally related to data storage, and more particularly to networked storage systems. 
     BACKGROUND OF THE INVENTION 
     Referring to  FIG. 1 , a networked storage platform  100 , such as an EMC Symmetrix® Storage Array, can be used by an enterprise or other organization to maintain and protect large amounts of data which can be accessed via a communications network  102 . The storage array includes at least one standardized network interface to support IO operations via the network  102 . For example, the interface may support a storage protocol such as SCSI or NFS over a network protocol such as Fibre Channel (FC), Ethernet, or Infiniband. Data may be stored in various tiers of storage, each associated with various different physical storage devices, groups of which may have different performance characteristics. Redundant copies of data may be maintained within the storage array, and the storage array may be mirrored by another storage array. Various other features which are known in the art distinguish a typical network storage platform from other storage devices. 
     The operations performed within the storage platform to support data maintenance, protection and IOs are hidden from other devices. From the perspective of a host device  104 , such as a server, an IO appears to be a local operation because, e.g., a SCSI command that would be used to access local storage is encapsulated, sent to the storage platform, de-encapsulated, and processed. The host is unaware, for example, of where the data is stored by the storage platform, or how the data is protected. However, the handling of data by the storage platform can affect performance of the host. In the example of an Internet transaction a user  106  initiates the transaction by communicating with the host device  104 . The host device operates instances of applications created to support particular types of transactions. Operation of the applications may require access to data maintained by the storage platform  100 . Consequently, IO operations take place between the host device and the storage platform in support of the application which is operated to support the transaction initiated by the user. If these IO operations include retrieval of data from relatively slow storage tier then latency increases. Furthermore, some latency can be expected from the network. 
     SUMMARY OF THE INVENTION 
     In accordance with an embodiment of the present invention, an apparatus comprises: a storage grid including a channel director which retrieves data from a cache in response to a storage protocol request, and a disk director that copies requested data from data storage to the cache; at least one computation node that runs an application; and an interface that enables communication between the storage grid and the computation node for data access in support of the application. 
     In accordance with another embodiment of the present invention, a method comprises: in a storage platform including a computation node and a storage grid including a channel director which retrieves data from a cache in response to a storage protocol request, and a disk director that copies requested data from data storage to the cache, running an application on the computation node, maintaining data by the storage grid, and exchanging data access communications between the storage grid and the computation node for data access in support of running the application. 
     An advantage associated with at least one aspect of the invention is that the latency associated with IO operations performed over a network is mitigated. In a typical prior art system a host device runs an application and a separate storage platform maintains data. IO operations in support of the application are performed over a network which interconnects the host with the storage platform. Integrating computation resources with a storage array helps to avoid the latency attributable to network operations. Furthermore, the networked storage platform may even obviate the need for servers and other host devices in certain situations. Even greater performance improvement may be obtained if the computation nodes directly communicate with one or more of the cache, disk director and LUNs using a direct data placement protocol. 
     These and other advantages of the invention will be more apparent from the detailed description and the drawing. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  illustrates a network in which a networked storage platform supports a host device that runs applications to support users. 
         FIG. 2  illustrates a networked storage platform which includes computation nodes that run applications which utilize a storage grid. 
         FIG. 3  illustrates a network in which a networked storage platform runs applications to support users. 
         FIGS. 4 a  and 4 b    illustrate embodiments of the computation nodes of  FIG. 3 . 
         FIG. 5  illustrates an embodiment of the interface of  FIG. 2 . 
         FIG. 6  illustrates an alternative embodiment of the interface of  FIG. 2 . 
         FIG. 7  illustrates the interface in greater detail. 
     
    
    
     DETAILED DESCRIPTION 
     Various aspects of the invention may be implemented partially or completely using computer program code. The computer program code is stored on non-transitory computer-readable memory and utilized by processing hardware. The program code may be provided as a computer program product or be integrated into network equipment. 
       FIG. 2  illustrates a networked storage platform  200  which includes a storage grid  204  and computation nodes  202 . The storage grid is operative to maintain and protect data, e.g., data that is utilized by applications including but not limited to applications run by the computation nodes. Each computation node is operative to run one or more applications  208  which are selected and loaded by a subscriber or owner/operator of the storage platform. The applications may also be removed by the subscriber or owner/operator, e.g., for replacement with other applications. An interface  206  allows IO operations to be performed in support of the applications. The storage grid and computation nodes may be, but are not necessarily, located within a single chassis. A physical part of the interface  206  may include busses, backplanes and switching fabrics that enable fast and wide data transfer. Consequently, a product associated with the invention could include a fully functional network storage platform in which a buyer can load and remove their own applications. 
     As shown in  FIG. 3 , the networked storage platform  200  may obviate the need for servers and other host devices in certain situations. In the illustrated example the user  106  communicates with a computation node of the storage platform via the network  102  directly, rather than through a server. However, it may be desirable to have the computation nodes run applications which require access to the storage grid and have a server run applications which do not require access to the storage grid but are required to support a particular service. Consequently, the latency associated with IO operations performed over the network  102  ( FIG. 1 ) between an application and associated data is mitigated. 
     Referring now to  FIG. 4 a   , each computation node may be associated with a separate processor  400  or group of processors, i.e., a separate hardware device or devices. Alternatively, as illustrated in  FIG. 4 b   , each computation node may be associated with a separate virtual machine  402 , i.e., a separate virtual device which shares the resources of a hardware device or devices. The hardware devices need not be identical, and may be customized to better support particular applications. Similarly, different types of virtual machines may be provided. 
       FIG. 5  illustrates an embodiment of the storage platform in which the interface provides the computation nodes with access to a channel director  500  of the storage grid  204 . Basic IO operations include Read and Write operations. A Read Hit occurs when all data necessary to satisfy an IO request is in cache  502  (global memory). In this case the channel director transfers the requested data from the cache to the computation node via interface  206 , or to the user via network  102 . A Read Miss occurs when the data necessary to satisfy an IO request is not in the cache  502 . In this case the data must be retrieved from disk storage  504  so a disk director  506  reads the blocks containing the data from the disks or other devices associated with disk storage and transfers the data to the cache  502 . The channel director  500  then transfers the requested data from the cache to the computation node via interface  206 , or to the user via network  102 . The computation nodes may communicate with the channel director using a standardized protocol, e.g., SCSI commands, or a non-standardized protocol. 
       FIG. 6  illustrates an alternative embodiment of the storage platform. In this embodiment the computation nodes may utilize the interface  206  to directly communicate with one or more of the cache  502 , disk director  506  and LUNs  508 , where each LUN is a logical unit number referring to a logical storage device that may be associated with multiple physical devices of disk storage  504  ( FIG. 5 ). The computation nodes may communicate with the cache  502 , disk director  506  and LUNs  508  via the interface  206  using a standardized protocol, e.g., SCSI commands, or a non-standardized protocol. In one embodiment the computation nodes can utilize a direct data placement protocol to perform IO operations with better speed than standardized protocols. 
       FIG. 7  illustrates aspects of the interface  206 . As mentioned above, performance is enhanced by avoiding latency associated with IOs performed across the network. Consequently, the interface may be configured to support block level storage protocols  700  and byte level storage protocols  702  that might otherwise be tunneled over the network. Such embodiments have the advantage of being easily implementable because of the existing infrastructure of applications that are designed to utilize such protocols. However, performance can be further enhanced by removing layers and processing overhead associated with network and storage protocols. For example, the application and storage grid can be tightly integrated via the interface such that non-protocol commands  704  can be utilized. The non-protocol commands can take various forms, including block and byte level commands. Another example is referencing a data structure  706  such as a flat space defined by a range of N bytes addressed  1 -N. In this case the application can request the structure, and the interface will respond by providing the corresponding storage. The application can then prompt IOs based on the addresses. The interface translates the addresses into actual locations in the storage array. The interface may also be configured to understand and provide other data structures including but not limited to multi-dimensional arrays. Alternatively, the application may read and write with application specific commands  708  that are native to the application. For example, and without limitation, the interface could respond to database query language commands. In this case the interface may be customized so that the application specific commands can be understood and used to prompt corresponding IOs. The interface and application may also be configured to utilize other features of the storage array. For example, the interface, application, or both can be configured to determine which tier of storage to utilize for particular data. In one embodiment the interface is configured to recognize particular data types such as log files, and automatically store particular types of data in a particular tier of storage. Recognizing data type has the additional advantage that the application can then refer to the data by a type indicator to prompt IOs. In general it will be appreciated that avoiding the “front end” of the storage array can enable performance enhancements. 
     While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed. Moreover, while the embodiments are described in connection with various illustrative structures, one skilled in the art will recognize that the system may be embodied using a variety of specific structures. Accordingly, the invention should not be viewed as limited except by the scope and spirit of the appended claims.