I/O Command Rebalancer for Virtualized Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


