Accelerating internet small computer system interface (iSCSI) proxy input/output (I/O)
First Claim
1. A method for accelerating proxy Input/Output (proxy I/O), comprising:
- receiving a command including a request for data from an initiator system at a primary target storage system, the primary target storage system comprising;
a first I/O controller communicatively coupled to the initiator system; and
a second I/O controller communicatively coupled to a proxy target storage system;
forwarding the command to a session layer of the primary target storage system;
when the primary target storage system determines that a portion of the data requested in the data request is not stored by the primary target storage system, providing a proxyDataIn request from the session layer of the primary target storage system to the second I/O controller;
using the second I/O controller, requesting the portion of the data from the proxy target storage system; and
providing, to the initiator system, a received response to the requesting, wherein the providing includes routing the response from the second I/O controller to the first I/O controller by a connection layer command.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a method for accelerating proxy Input/Output (proxyI/O). The method includes the step of receiving a command at a primary target storage system. The primary target storage system may be part of a clustered storage array. The command may be a command which was transmitted by an initiator system via a storage area network, and may include a request for data. The method further includes the step of forwarding the command to a session layer of the primary target storage system. Further, when a virtualization layer of the primary target storage system determines that a portion of the data requested in the data request is not stored by the primary target storage system, but is stored by a proxy target storage system included in the plurality of storage systems, the method further includes providing a proxyIO request to a proxy initiator of the primary target storage system. Further, the method may further include, based on the proxyIO request, generating a proxyDataIn request and providing the proxyDataIn request to an I/O controller for the primary target storage system.
-
Citations
20 Claims
-
1. A method for accelerating proxy Input/Output (proxy I/O), comprising:
-
receiving a command including a request for data from an initiator system at a primary target storage system, the primary target storage system comprising; a first I/O controller communicatively coupled to the initiator system; and a second I/O controller communicatively coupled to a proxy target storage system; forwarding the command to a session layer of the primary target storage system; when the primary target storage system determines that a portion of the data requested in the data request is not stored by the primary target storage system, providing a proxyDataIn request from the session layer of the primary target storage system to the second I/O controller; using the second I/O controller, requesting the portion of the data from the proxy target storage system; and providing, to the initiator system, a received response to the requesting, wherein the providing includes routing the response from the second I/O controller to the first I/O controller by a connection layer command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory machine readable medium having stored thereon instructions for performing a method for accelerating proxy Input/Output (proxy I/O), which when executed by at least one machine, causes the machine to:
-
receive a command from an initiator system at a first I/O controller of a first storage system, wherein the command includes a request for data; forward the command to a session layer of the first storage system; when the first storage system determines that a portion of the data requested in the command is not stored by the first storage system, but is stored by a second storage system to which a second I/O controller of the first storage system is communicatively coupled, provide a proxyIO request to a proxy initiator of the first storage system; based on the proxyIO request, generate a proxyDataIn request and provide the proxyDataIn request from the session layer of the first storage system to the second I/O controller; and request the portion of the data from the second storage system. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A storage system comprising:
-
a first input/output (I/O) controller communicatively coupled to an initiator via a storage area network and operable to communicate with the initiator using at least an iSCSI protocol; a second input/output (I/O) controller communicatively coupled to a target storage system and operable to communicate with the target storage system using at least an iSCSI protocol; a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of accelerating proxy Input/Output (proxy I/O); and at least one processor coupled to the memory, the at least one processor configured to execute the machine executable code to; receive a command including a request for data from the initiator at the first I/O controller; upon determining that a portion of the data requested in the data request is not stored by the storage system, provide a proxyDataIn request from a session layer of the storage system to the second I/O controller; using the second I/O controller, request the portion of the data from the target storage system; and provide, to the initiator, a received response by routing the response from the second I/O controller to the first I/O controller by a connection layer command. - View Dependent Claims (19, 20)
-
Specification