Host MPIO Driver Clones Offload API Commands for Storage Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In information processing systems, the delivery of offload API commands to multiple storage arrays in metro/stretched configurations leads to excessive resource consumption as each storage array replicates commands, causing performance issues and overutilization of communication links.
Innovation Solution
A host device configures a multi-path layer with an MPIO driver to clone and tag IO operations, sending instances to both storage arrays, allowing each to execute the commands independently and preventing replication, thus optimizing storage array utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If offload API commands are sent to one storage system in a metro/stretched configuration, then the command can be executed by that storage system, but the storage system consumes excessive resources replicating the command to the other storage system
Solution Approach 1:
The host device performs preliminary action by cloning the offload API command and sending it to both storage systems simultaneously before either storage system needs to replicate it. This prevents the harmful replication action from occurring at all, as both systems already have the command locally. The tagging mechanism ensures each storage system recognizes the command as already distributed.
Solution Approach 2:
The host device acts as an intermediary between the storage systems, managing command distribution directly rather than allowing one storage system to replicate to another. The host's multi-path layer and tagging mechanism coordinate the simultaneous delivery to both systems, eliminating the need for inter-storage-system replication communication.
2Adaptability or versatility
If offload API commands are replicated between storage systems, then both storage systems can execute the commands, but communication links become overutilized
Solution Approach 1:
The host device performs preliminary distribution of commands to both storage systems before any replication is needed. By tagging commands with replication prevention information, the host ensures both systems execute independently without requiring communication between storage systems, thus preventing communication link overutilization.
Solution Approach 2:
The host device creates copies of the offload API command and sends them to both storage systems simultaneously. These copies are tagged to prevent further replication, allowing each storage system to execute the command independently using its own copy, eliminating the need for inter-system replication traffic.
3Ease of operation
If the host device sends offload API commands to one storage system, then the command delivery is simple, but the storage array utilization is inefficient
Solution Approach 1:
The host device segments the command delivery process by cloning the offload API command and sending separate instances to each storage system through different paths. The multi-path layer divides the delivery task, with each path handling one storage system independently, improving utilization while maintaining operational simplicity through automated tagging.
Solution Approach 2:
The host device's multi-path layer provides universal functionality by handling command routing to multiple storage systems through a single interface. The tagging mechanism adds multi-functionality by simultaneously enabling command execution and replication prevention, allowing efficient storage array utilization without complicating the host's operation.
Data Source
AI summary
An apparatus includes at least one processing device configured to identify one or more logical storage devices each accessible in at least first and second storage systems, to detect one or more input-output (IO) operations associated with an offload application programming interface (API) of at least one of the first and second storage systems, to clone each such detected IO operation, and to send resulting respective first and second instances of each cloned IO operation to respective ones of the first and second storage systems. The first and second instances of each cloned IO operation are tagged prior to being sent to respective ones of the first and second storage systems so as to allow each of the first and second storage systems to separately determine that the other one of the first and second storage systems has been sent a corresponding instance of the cloned IO operation.


