iSCSI Proxy I/O Acceleration via Layer Offloading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems for block storage clustering using the iSCSI protocol suffer from performance limitations, particularly in terms of latency and bandwidth overhead due to misdirected I/O operations in target-based storage clusters, which double network traffic and incur additional latency.
Innovation Solution
The method involves offloading proxy I/O operations from the session layer to the connection layer, utilizing an I/O controller to route data directly between storage nodes without intermediate buffering, thereby reducing latency and bandwidth consumption by eliminating the need for temporary buffers and minimizing CPU interrupts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If proxy I/O operations are handled by the session layer in target-based storage clusters, then data can be retrieved from remote storage nodes, but network traffic doubles and latency increases due to store and forward delays
Solution Approach 1:
The patent extracts the proxy I/O handling function from the session layer and relocates it to the connection layer. This separation allows the session layer to focus on high-level data transfer while the connection layer manages the proxy I/O operations directly, eliminating store and forward delays and reducing latency without compromising data retrieval capability
Solution Approach 2:
The patent segments the I/O processing into distinct layers: session layer for data transfer coordination and connection layer for proxy I/O operations. This segmentation enables independent optimization of each layer, allowing proxy I/O to be handled more efficiently without affecting overall data retrieval performance
2Productivity
If proxy I/O operations use temporary buffers for data storage, then data can be buffered during transfer, but bandwidth overhead increases and CPU interrupts increase
Solution Approach 1:
The patent removes the temporary buffering mechanism from the proxy I/O operation. By eliminating the need for intermediate buffers, the system reduces bandwidth overhead and minimizes CPU interrupts while maintaining data transfer efficiency through direct data routing
Solution Approach 2:
The patent implements a store-and-forward elimination approach where data is routed directly from the proxy target storage node to the initiator without intermediate buffering. This rushing through of data eliminates the bandwidth overhead and CPU interrupt penalties associated with temporary buffer operations
3Productivity
If the session layer handles all proxy I/O operations, then data can be retrieved from remote nodes, but CPU load increases due to frequent interrupts
Solution Approach 1:
The patent extracts proxy I/O operation handling from the session layer to the connection layer. This extraction reduces CPU load by allowing the connection layer to manage low-level I/O operations with fewer interrupts, while the session layer maintains remote data access capability through coordinated data transfer
Data Source
AI summary
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.


