Patent ID: 8627015

Claim:
A data processing system, comprising: a storage system operative to provide data storage organized into one or more volumes each consisting of consecutive blocks having respective block addresses; a set of caching storage controllers coupled to the storage system and to a storage network, the caching storage controllers being co-operative in an active-active fashion to provide access to any of the blocks of the volumes from any of the caching storage controllers in response to storage commands received from the storage network, the caching storage controllers engaging in a distributed cache protocol according to which (a) each volume is divided into successive chunks each containing a predetermined number of contiguous blocks, and (b) either ownership of the chunks is dynamically transferred among the caching storage controllers in response to the storage commands, or storage commands sent to non-owning controllers are forwarded to owning controllers for processing; at least one initiator coupled to the storage network and operative to initiate the storage commands in response to storage requests, the initiator being operative to direct the storage commands to the caching storage controllers including: maintaining a persistent association of the chunks of each volume with respective ones of the caching storage controllers; and for each storage request directed to a target chunk of the volume, (a) identifying the caching storage controller associated with the target chunk, and (b) generating a storage command and sending the storage command via the storage network to the identified caching storage controller, wherein each initiator is a host computer which provides, as the storage commands, multipathing input/output (I/O) requests to the storage system through the storage network, the caching storage controllers residing within the storage network to participate in processing of the multipathing I/O requests; wherein the storage system houses a set of storage devices constructed and arranged to store host data on behalf of each host computer in a nonvolatile manner; and wherein the multipathing I/O requests include read requests to read host data from the set of storage devices of the storage system, and write requests to write host data into the set of storage devices of the storage system.