主权项 |
1. A method for communication between an initiator system and a storage cluster, comprising:
receiving an initial input/output (I/O) request from the initiator system to a first storage system of the storage cluster; providing only a referral response from the first storage system to the initiator system without providing any data in response to the initial I/O request regardless of whether any portion of the data is stored in the first storage system when at least a portion of the data is not stored in the first storage system, the referral response providing information for directing the initiator system to each particular storage system of the storage cluster that stores at least a portion of the requested data; notifying each particular storage system that stores at least a portion of the requested data regarding the referral response via a prefetch notice, the prefetch notice including: an operation type of the initial I/O request; and address information for accessing requested data stored in each particular storage system_that stores at least a portion of the requested data; when the initial I/O request is a read request, prefetching at least a portion of the requested data stored in each particular storage system in to a cache of that particular storage system, the data being prefetched being determined based on the address information specified in the prefetch notice; when the initial I/O request is a write operation, pre-allocating at least a portion of the cache of each particular storage system that stores at least a portion of the requested data in response to receiving the prefetch notice at that particular storage system, the cache being pre-allocated being determined based on the address information specified in the prefetch notice; receiving a subsequent I/O request from the initiator system to each particular storage system that stores at least a portion of the requested data; and for each particular storage system that stores at least a portion of the requested data:
when the subsequent I/O request is a read request directed to that particular storage system based on the referral response, providing to the initiator system the portion of the prefetched data from the cache of that particular storage system; andwhen the subsequent I/O request is a write operation directed to that particular storage system based on the referral response, utilizing the pre-allocated portion of the cache to buffer data received from the subsequent I/O request. |