Storage Device I/O Scheduling for QoS Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face challenges in maintaining stable Quality of Service (QoS) performance as the number of servers sharing a storage device increases, leading to unpredictable resource allocation and performance degradation, especially when prioritization techniques fail to allocate absolute resources effectively.

Innovation Solution

A storage device with a calculating unit to determine upper limit values of input/output processes based on priority, a scheduling unit to order executions, and an executing unit to manage these processes, ensuring optimal performance by dynamically adjusting resource allocation based on priority levels and current system conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the storage device allocates resources based on relative priority per server, then the QoS function is implemented, but the allocated resources decrease as the number of servers increases

Engineering Contradiction:
ImproveQoS performance stabilityVSAvoidallocated resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the parameter basis from relative priority to absolute priority values. Each server is assigned an absolute priority value that directly determines resource allocation, independent of the total number of servers. This allows the storage device to maintain stable resource allocation for high-priority servers even as the system scales.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments resource allocation into priority-based groups, where servers are divided into different priority levels. Each priority level receives a guaranteed portion of resources, ensuring that high-priority servers maintain stable performance regardless of the total number of servers in the system.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the storage device side sets target performance and performance limit per server or LUN, then performance control is achieved, but setting specific performance values becomes troublesome

Engineering Contradiction:
Improveperformance controlVSAvoidsetting complexity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The storage device automatically determines appropriate performance targets and limits based on the absolute priority values assigned to servers. Instead of requiring manual configuration of specific performance parameters, the system self-adjusts resource allocation according to the priority hierarchy, simplifying operation while maintaining performance control.

Inventive Principle:
Principle #25Self-service

3Reliability

If servers of higher priority occupy resources, then QoS is maintained, but servers of lower priority are not capable of executing processing

Engineering Contradiction:
ImproveQoS maintenanceVSAvoidlower priority server execution
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation where the amount of resources allocated to each server varies based on current system conditions and priority levels. When system capacity is sufficient, lower priority servers can execute processing; when capacity is constrained, resources are dynamically shifted to higher priority servers, maintaining QoS while maximizing overall productivity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2608011B1Storage device, and storage device control method
Publication Date: 2018.02.21 FUJITSU LTD
  • EP2608011B1 patent drawingFigure 1
  • EP2608011B1 patent drawingFigure 2
  • EP2608011B1 patent drawingFigure 3

AI summary

A storage device (100) includes a calculating unit (505), a scheduling unit (506) and an executing unit (507). The calculating unit (505) calculates an upper limit value of the number of input/output processings determined based on the priority set to a host, a port and an LUN. The scheduling unit (506) schedules an execution order of input/output processings based on the number of input/output processings received from the host and the calculated upper limit value. The executing unit (507) executes the input/output processings in the execution order scheduled by the scheduling unit (506).