Dynamic Load Balancing for Fiber Channel Processor Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for controlling fiber channel ports with multiple communication processors suffer from uneven load distribution, leading to performance bottlenecks, particularly when handling sequential and random I/O commands, and mixing different block sizes, which affects transaction performance and increases processing time.

Innovation Solution

A control apparatus that dynamically updates and balances the load across multiple communication processors based on current processing loads, selects the optimal processor for each command, and optimizes processor allocation based on I/O characteristics and block sizes to ensure even distribution and parallel operation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple communication processors are used to handle I/O commands, then processing capacity increases, but load distribution becomes uneven causing performance bottlenecks

Engineering Contradiction:
Improveprocessing capacityVSAvoidload distribution uniformity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements dynamic load balancing by continuously monitoring the load status of each communication processor and adjusting command allocation in real-time. The driver selects different communication processors based on current load conditions, transforming the static load distribution into a dynamic adaptive system that maintains uniformity across multiple processors.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If I/O commands are distributed evenly among multiple communication processors, then load balance improves, but sequential access performance to storage apparatus declines

Engineering Contradiction:
Improveload distribution uniformityVSAvoidsequential access performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies local quality by treating different types of I/O commands differently. Sequential access commands are routed to the same communication processor to maintain sequential quality, while random access commands are distributed across multiple processors. This localized optimization preserves sequential access performance while maintaining overall load balance.

Inventive Principle:
Principle #3Local quality

3Productivity

If I/O commands with different block sizes are processed by the same communication processor, then resource utilization improves, but processing time increases due to smaller block size commands

Engineering Contradiction:
Improveresource utilizationVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments I/O commands based on their block size characteristics. Large block size commands (typically tape apparatus) and small block size commands (typically disk apparatus) are separated and routed to different communication processors. This segmentation prevents small commands from interrupting large command processing, reducing wait times while maintaining high resource utilization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9740404B2Control apparatus and control method
Publication Date: 2017.08.22 HITACHI VANTARA LTD
  • US9740404B2 patent drawing
  • US9740404B2 patent drawing
  • US9740404B2 patent drawing

AI summary

A control apparatus, which is configured to control a plurality of processors corresponding to a plurality of storage areas arranged at an interface for accessing the storage areas, comprises: an update unit configured to, in a case a command sequence including each command outputted to one of the storage areas is inputted, update, by each one of the processors, a load applied by a command currently being executed to the storage area corresponding to the processor; a selection unit configured to, for one command of the command sequence, based on a load applied by a command currently executed at the processor updated by the update unit, select a processor out of the processors as an allocation destination of the one command; and an output unit configured to output the one command to the processor selected by the selection unit.