VM I/O Scheduling via Segmented Queues and Fair Queueing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In cloud computing and virtualization, multiple virtual disks sharing a single I/O thread lead to imbalances in I/O resource availability, affecting user experience due to decreased resources for other disks when one disk consumes more resources.

Innovation Solution

A system that schedules I/O resources by creating an I/O queue for each virtual disk and allocating resources based on a quota, allowing for fair distribution and prioritization, using the Completely Fair Queueing algorithm to manage I/O requests and adjust quotas dynamically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If multiple virtual disks share one I/O thread, then resource utilization is improved, but I/O resource availability becomes unbalanced

Engineering Contradiction:
ImproveI/O resource utilizationVSAvoidI/O resource availability balance
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The patent segments the shared I/O thread into multiple independent I/O queues, with each queue dedicated to a specific virtual disk. This segmentation allows independent scheduling and resource allocation for each virtual disk, preventing resource starvation and ensuring balanced I/O resource availability while maintaining efficient utilization through the shared I/O thread infrastructure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If one virtual disk consumes more I/O resources, then its performance is improved, but other virtual disks experience resource deprivation

Engineering Contradiction:
ImproveI/O operation speedVSAvoidI/O resources for other virtual disks
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic resource allocation through a scheduling mechanism that adjusts I/O resource distribution based on current system conditions and virtual disk priorities. The scheduler dynamically controls the amount of I/O resources each virtual disk receives, ensuring that no single virtual disk can monopolize resources while still allowing high-priority or performance-critical disks to receive adequate resources when needed.

Inventive Principle:
Principle #15Dynamics

3Loss of energy

If I/O resources are shared among multiple virtual disks, then resource efficiency is improved, but user experience deteriorates due to resource imbalance

Engineering Contradiction:
ImproveI/O resource efficiencyVSAvoiduser experience
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The patent incorporates a feedback mechanism where the scheduling system continuously monitors I/O resource usage patterns, queue depths, and virtual disk performance metrics. Based on this feedback, the scheduler adjusts resource allocation dynamically to maintain balanced performance across all virtual disks, ensuring good user experience while preserving the efficiency benefits of shared I/O resources.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10423450B2Method and system for scheduling input/output resources of a virtual machine
Publication Date: 2019.09.24 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US10423450B2 patent drawing
  • US10423450B2 patent drawing
  • US10423450B2 patent drawing

AI summary

One embodiment provides a system for scheduling I/O resources of a virtual machine. During operation, in response to receiving a plurality of I/O requests, the system identifies a plurality of target virtual disks to which the I/O requests are to be sent, wherein a virtual disk corresponds to a previously created I/O queue. The system assigns a respective I/O request to the corresponding I/O queue for an identified target virtual disk. The system schedules I/O resources to be used by the respective I/O request based on a scheduling parameter that corresponds to the identified target virtual disk.