I/O Command Rebalancer for Virtualized Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computer systems, I/O commands from virtual machines with more queues and commands are often processed less frequently than those from machines with fewer queues and commands, leading to failures in I/O balancing policies due to the hypervisor's inability to determine true priorities, as it only considers command priority and not container or application priority, queue length, or virtual queue quantity.

Innovation Solution

A rebalancer is introduced to detect the quantity of virtual queues and I/O commands in each virtual machine, assigning updated priorities based on these factors to ensure I/O commands are processed according to their true priorities, which are then dispatched to physical queues for proper handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the hypervisor processes I/O commands based only on command priority, then the processing logic is simple, but I/O balancing policies fail because true priorities (container/application priority, queue length, virtual queue quantity) are not considered

Engineering Contradiction:
Improveprocessing logic complexityVSAvoidI/O balancing policy enforcement
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

A rebalancer component is introduced as an intermediary between the hypervisor and physical queues. The rebalancer receives I/O commands from virtual queues, determines true priorities by considering multiple factors (container/application priority, queue length, virtual queue quantity), and then dispatches commands to physical queues. This mediator resolves the contradiction by adding complexity at a specific layer to achieve reliable I/O balancing without complicating the core hypervisor processing logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The I/O command processing function is segmented into separate components: virtual queue management at the guest OS level, rebalancing logic at the hypervisor level, and physical queue processing at the hardware level. This segmentation allows each component to focus on specific aspects, with the rebalancer specifically handling priority adjustment based on multiple factors, thereby achieving reliable balancing without overwhelming the entire system with complex processing logic.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the hypervisor considers multiple factors (container priority, application priority, queue length, virtual queue quantity) for I/O processing, then I/O balancing reliability improves, but device complexity increases

Engineering Contradiction:
ImproveI/O balancing policy enforcementVSAvoidprocessing logic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The rebalancer serves as a dedicated intermediary that consolidates the complexity of multi-factor priority determination. Instead of embedding complex processing logic throughout the hypervisor, the rebalancer centralizes this function, collecting information about container priority, application priority, queue length, and virtual queue quantity to compute true priorities, thereby achieving reliable balancing with localized complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The rebalancer performs preliminary processing of I/O commands by determining true priorities before dispatch to physical queues. This preliminary action involves evaluating multiple factors (container/application priority, queue length, virtual queue quantity) and adjusting priorities accordingly, so that when commands reach the physical layer, the balancing decisions are already made, reducing overall system complexity.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If I/O commands from virtual machines with more queues are processed less frequently, then resource distribution appears balanced, but high-priority commands from busy virtual machines are not handled appropriately

Engineering Contradiction:
Improvecommand processing frequencyVSAvoidhigh-priority command handling
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system changes the parameter used for priority determination from simple command priority to true priority, which incorporates multiple factors including container priority, application priority, queue length, and virtual queue quantity. By adjusting the priority parameter dynamically based on these factors, the system ensures that high-priority commands from busy virtual machines are handled appropriately, resolving the contradiction between processing frequency and priority handling reliability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The rebalancer applies different processing characteristics to different I/O commands based on their specific characteristics. Commands from virtual machines with more queues or longer queue lengths receive adjusted priorities to ensure high-priority commands are handled appropriately. This local quality approach allows the system to maintain balanced resource distribution while ensuring high-priority commands from busy virtual machines are not overlooked.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11995016B2Input/output command rebalancing in a virtualized computer system
Publication Date: 2024.05.28 RED HAT LLC
  • US11995016B2 patent drawing
  • US11995016B2 patent drawing
  • US11995016B2 patent drawing

AI summary

The present disclosure provides new methods and systems for input/output command rebalancing in virtualized computer systems. For example, an I/O command may be received by a rebalancer from a virtual queue in a container. The container may be in a first virtual machine. A second I/O command may be received from a second virtual queue in a second container which may be located in a second virtual machine. The rebalancer may detect a priority of the first I/O command and a priority of the second I/O command. The rebalancer may then assign an updated priority each I/O command based on a quantity of virtual queues in the virtual machine of origin and a quantity of I/O commands in the virtual queue of origin. The rebalancer may dispatch the I/O commands to a physical queue.