Patent ID: 8656070

Claim:
A method for communication via a network between an initiator system and a block storage cluster, the block storage cluster including multiple virtual disks and a plurality of storage systems, the plurality of storage systems at least including a first storage system and a second storage system, each storage system including at least one storage device, wherein the block storage cluster is configured to utilize data striping for creating at least one virtual volume by striping data segments over multiple virtual disks, the method comprising: initiating an input/output (I/O) request from the initiator system to the first storage system included in the plurality of storage systems of the block storage cluster, each of the plurality of storage systems including a plurality of data segments; receiving a referral response from the first storage system via a network when at least a portion of data associated with the I/O request from the initiator system is not stored or configured to be stored on the first storage system of the block storage cluster, the referral response including information which describes a layout of data requested in the I/O request, wherein the information of the referral response includes a virtual disk count, a segment size, and at least one indexed port identifier; obtaining the virtual disk count, the segment size, and the at least one indexed port identifier based on the referral response received from the first storage system of the block storage cluster; deciding to direct each of one or more I/O requests to a particular storage system of the plurality of storage systems based upon the virtual disk count, the segment size, and the at least one indexed port identifier obtained from the referral response received from the first storage system; and directing each of the one or more I/O requests to the particular storage system of the plurality of storage systems according to the layout of data described by the referral response, each of the one or more I/O requests being a particular I/O request from the initiator system to the particular storage system of the block storage cluster based on the virtual disk count, the segment size, and the at least one indexed port identifier, wherein at least one of the one or more I/O requests is directed to the second storage system of the plurality of storage systems.