Storage Driver Hooks for Error Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional storage array testing requires extensive knowledge of the system and can leave the array in an unknown state due to unexecuted I/O operations, and does not effectively simulate errors across multiple storage processors or account for saturation scenarios.

Innovation Solution

Establishing hooks in the send-path and completion-path execution sequences of the storage driver allows for selective modification and simulation of storage access errors, ensuring consistent state maintenance and error simulation across all processors, without requiring detailed knowledge of interface relationships.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hooks are established in the send-path to catch I/O requests and return error codes, then error simulation capability is improved, but the storage array is left in an unknown state due to unexecuted I/O operations

Engineering Contradiction:
Improveerror simulation capabilityVSAvoidstorage array state consistency
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The patent introduces a completion-path hook as an intermediary mechanism that mediates between the send-path error injection and the actual I/O execution. This completion-path hook intercepts the completion of I/O operations and injects error codes at the appropriate point in the completion path, allowing error simulation without disrupting the normal I/O execution flow and maintaining storage array state consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent establishes hooks in advance in both the send-path and completion-path of the storage driver. These pre-positioned hooks are configured to monitor specific I/O requests and inject errors at predetermined points in the execution sequence, enabling reliable error simulation while maintaining system state consistency through proper sequencing of operations.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If error codes are returned in the send-path of a single storage processor, then error handling testing is simplified, but errors are not reflected across multiple storage processors accessing the same LBAs

Engineering Contradiction:
Improveerror handling testingVSAvoidmulti-processor error simulation
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal hook establishment mechanism that can be applied to multiple storage processors simultaneously. The completion-path hook system is designed to work across all storage processors accessing the same LBAs, providing unified error simulation capability that maintains consistency across the multi-processor architecture while preserving the ease of operation benefits.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If I/O requests are caught on the send-path to return error codes, then extensive knowledge of the storage array is required, but this increases the complexity of the testing process

Engineering Contradiction:
Improveerror code injection accuracyVSAvoidtesting process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The completion-path hook acts as an intermediary that simplifies the testing process by providing a standardized interface for error injection. Instead of requiring testers to understand complex send-path interception mechanisms, the completion-path hook system automatically monitors I/O completions and injects errors at the appropriate point, reducing testing complexity while maintaining injection accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If the conventional testing method is used, then error codes can be returned without executing actual I/O, but saturation simulation and delay insertion are not possible

Engineering Contradiction:
Improvetesting efficiencyVSAvoidsaturation simulation capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic delay insertion capability through the completion-path hook mechanism. The system can dynamically adjust the timing of error code injection relative to I/O operation completion, enabling saturation simulation by introducing configurable delays. This maintains testing efficiency by not requiring actual I/O execution while adding versatility for saturation and timing scenario simulation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8874966B1Storage device error simulator tool
Publication Date: 2014.10.28 EMC IP HLDG CO LLC
  • US8874966B1 patent drawing
  • US8874966B1 patent drawing
  • US8874966B1 patent drawing

AI summary

The system and method provide establishment of hooks in a send-path at inter-object interfaces of a layered stack of the storage driver and hooks in the completion-path execution sequence of storage driver of a storage system, the completion-path hook inserts replacement storage response messages to simulate the specified storage access error.