Storage I/O Path Selection via Core Affinity Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In storage apparatuses, cross calls between processors or processor cores can occur when a server selects a path for I/O requests, leading to decreased performance as the load is applied to both processors or cores, causing inefficiencies in data transfer.

Innovation Solution

The storage apparatus dynamically specifies a port responsible core and an LU responsible core for each port and LU, respectively, and the server acquires this information to select non-cross call paths where the LU responsible core and port responsible core are the same processor core, ensuring efficient data transfer by avoiding cross calls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a server selects a path for I/O requests using a round-robin method among multiple paths, then path utilization is improved, but cross calls between processor cores occur causing performance degradation

Engineering Contradiction:
Improvepath utilizationVSAvoidperformance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The server acquires identification information about LU responsible cores in advance before transmitting I/O requests. This preliminary action enables the server to know which processor core is responsible for each LU beforehand, allowing it to select paths that avoid cross calls and prevent performance degradation before it occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The server periodically acquires updated identification information about LU responsible cores from the storage apparatus. This feedback mechanism ensures the server has current information about core responsibilities, enabling it to adaptively select optimal paths that avoid cross calls while maintaining good path utilization.

Inventive Principle:
Principle #23Feedback

2Productivity

If the LU responsible core is dynamically changed according to processor load, then load balancing is improved, but the server requires periodic updates to maintain accurate path selection

Engineering Contradiction:
Improveload balancingVSAvoidinformation update mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The server periodically acquires identification information about LU responsible cores from the storage apparatus at predetermined intervals. This periodic action allows the server to receive updates about dynamic core reassignments due to load changes while maintaining efficient operation without requiring continuous real-time communication.

Inventive Principle:
Principle #19Periodic action

3Adaptability or versatility

If multiple paths are prepared from server to LU, then path selection flexibility is improved, but the likelihood of cross call occurrence increases

Engineering Contradiction:
Improvepath selection flexibilityVSAvoidcross call occurrence
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The identification information about LU responsible cores acts as an intermediary that bridges the server's path selection process and the storage apparatus's processor core responsibilities. This information enables the server to select paths that align with core responsibilities, allowing multiple paths to be used flexibly while avoiding cross call harmful effects.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9323468B2Computer system and data input/output method
Publication Date: 2016.04.26 HITACHI VANTARA LTD
  • US9323468B2 patent drawing
  • US9323468B2 patent drawing
  • US9323468B2 patent drawing

AI summary

A storage apparatus includes multiple ports communicable with a server, multiple processor cores and multiple LUs (Logical Units). For each port, a port responsible core, which is a processor core to accept an I/O request received by the port, is specified. For each LU, an LU responsible core, which is a processor core responsible for I/O, is specified. The LU responsible core may be dynamically changed. The server periodically acquires identification information about the LU responsible cores from the storage apparatus. When transmitting an I/O request, the server selects a non-cross call path, which is such a path that the LU responsible core and the port responsible core are the same processor core, from among multiple paths to an I/O destination LU, which is an LU specified by the transmission target I/O request, and transmits the transmission target I/O request via the selected path.