I/O Path Virtualization in Storage Area Networks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In existing storage area networks (SANs), I/O requests are not prioritized, leading to delays and bottlenecks, especially as the infrastructure grows, causing latency and performance reduction due to unmanaged I/O paths between host computers and disk drives.

Innovation Solution

Implementing an I/O path virtualization system that identifies and prioritizes I/O requests using an I/O control engine, separating them into command and status requests, and routing them through solid state drive buffer queues to manage and process requests efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If I/O requests are processed in FIFO order without prioritization, then the system is simple to implement, but critical applications experience delays and performance is reduced

Engineering Contradiction:
ImproveI/O request processing simplicityVSAvoiddata function performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments I/O requests into different types (read, write, status) and assigns different priorities to each type. The I/O control engine separates and processes different request types through different paths, enabling critical requests to be handled faster while maintaining system manageability through structured classification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic priority assignment where the I/O control engine adjusts processing priority based on request type and system conditions. Critical applications can dynamically gain higher priority when needed, allowing the system to adapt to varying performance requirements without changing the basic FIFO processing architecture.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the number of I/O requests increases with SAN infrastructure size, then the system becomes more versatile and scalable, but latency increases and I/O bottlenecks occur

Engineering Contradiction:
ImproveSAN infrastructure scalabilityVSAvoidI/O request latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary classification and prioritization of I/O requests at the I/O control engine before they enter the drive tray. By pre-sorting requests into priority queues and identifying critical requests in advance, the system reduces latency during high-volume periods without limiting infrastructure scalability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The I/O control engine acts as an intermediary between host computers and drive trays, managing the flood of I/O requests by classifying, prioritizing, and routing them appropriately. This intermediary layer absorbs the complexity of managing large numbers of requests while presenting a simplified interface to both hosts and drives, reducing overall system latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If read, write and status requests are not distinguished and prioritized, then the system has fewer components and is simpler, but critical application requests are delayed

Engineering Contradiction:
ImproveI/O request management complexityVSAvoidcritical application response
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments I/O requests into distinct categories (read, write, status) and creates separate processing paths for each type. The I/O control engine maintains separate queues and processing logic for different request types, enabling critical requests to be handled with higher reliability while keeping the overall system architecture manageable through clear segmentation.

Inventive Principle:
Principle #1Segmentation

4Ease of manufacture

If I/O paths are not virtualized and managed, then the system is easier to implement, but bottlenecks occur at the drive backend due to saturated I/O paths

Engineering Contradiction:
ImproveI/O path implementation simplicityVSAvoiddata function performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The I/O control engine serves as a virtualization intermediary that manages I/O paths between host computers and drive trays. It virtualizes the I/O path management by creating a software layer that classifies, prioritizes, and routes requests, relieving the drive backend from direct handling of all I/O operations and reducing saturation bottlenecks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent adds a virtualization dimension to traditional physical I/O paths by introducing software-based path management at the I/O control engine. This dimensional shift from purely physical path management to software-virtualized path management enables better control over I/O routing without requiring complete redesign of the hardware architecture.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS8473648B2System and method of I/O path virtualization between a raid controller and an environment service module in a storage area network
Publication Date: 2013.06.25 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8473648B2 patent drawing
  • US8473648B2 patent drawing
  • US8473648B2 patent drawing

AI summary

A system and method of I/O path virtualization between a RAID controller and an environment service module (ESM) in a storage area network (SAN) is disclosed. In one embodiment, a type of I/O request is identified by an input/output (I/O) control engine upon receiving an I/O request from a host computer via a RAID controller. Further, a priority is assigned to the received I/O request based on the type of I/O request by the I/O control engine. Furthermore, the processing of the prioritized I/O request is interrupted by the I/O control engine. In addition, the prioritized I/O request is separated into a command I/O request or a status request. Also, the separated command I/O request or the status request is sent to an associated queue in a plurality of solid state drive (SSD) buffer queues (SBQ) in the I/O control engine.