VM I/O Scheduler for Cloud Storage Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current I/O schedulers are ineffective in virtual machine environments, particularly when interacting with remote cloud-based storage arrays, as they are optimized for local storage and fail to manage requests from multiple virtual machines efficiently, leading to network traffic and bandwidth issues.
Innovation Solution
Implementing an I/O scheduler that executes on each virtual machine, utilizing priority tags to organize requests into separate queues based on priority and incorporating storage array information to optimize request transmission, thereby reducing latency and improving storage array utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If current I/O scheduler software is used in a VM environment with remote storage arrays, then the scheduler can organize requests, but it fails to reduce seek time and latency effectively because it is optimized for local storage only
Solution Approach 1:
The I/O scheduler is modified to change its operational parameters from local-storage-optimized to cloud-storage-optimized. This includes adapting scheduling algorithms to account for network latency, remote storage characteristics, and cloud-based storage array behavior, thereby reducing seek time and latency in VM environments while maintaining adaptability to remote storage
Solution Approach 2:
The scheduling function is segmented into VM-specific schedulers that execute within each virtual machine. This allows each VM to have its own optimized scheduler instance that can independently manage requests to remote storage arrays, improving overall system adaptability while reducing time loss through specialized scheduling
2Device complexity
If a single I/O scheduler manages requests from multiple VMs on one computing platform, then device complexity is reduced, but network traffic increases and bandwidth is wasted due to inability to organize requests from multiple clients
Solution Approach 1:
The monolithic I/O scheduler is segmented into multiple VM-specific scheduler instances, with each scheduler executing within its respective virtual machine. This segmentation allows each scheduler to independently optimize request organization for its VM, improving bandwidth utilization and reducing wasted network traffic while maintaining manageable complexity through standardized scheduler designs
Solution Approach 2:
The I/O scheduler acts as an intermediary layer between VMs and remote storage arrays, intercepting and organizing requests before transmission. By positioning the scheduler within each VM, it mediates request flow more efficiently, reducing network traffic and improving bandwidth utilization without requiring complex centralized management
3Loss of energy
If SIOC bandwidth management is used to control network traffic from multiple VMs to storage volume, then overall bandwidth is controlled, but individual request priority and granularity are lost
Solution Approach 1:
Bandwidth management is segmented from the aggregate SIOC level down to the individual request level within each VM. The VM-specific I/O scheduler divides and organizes requests into priority-based queues, enabling fine-grained control of request transmission while SIOC continues to manage overall bandwidth, thus achieving both efficient bandwidth utilization and precise request priority handling
Solution Approach 2:
Different quality of service levels are applied locally to individual requests based on their priority. The I/O scheduler implements local quality control by creating separate queues for different priority levels within each VM, allowing high-priority requests to be transmitted with preferential treatment while maintaining overall bandwidth control through SIOC
Data Source
AI summary
This disclosure describes a system and method for providing I/O scheduling capabilities to a host server executing one or more virtual machine clients and communicating with a cloud-based storage array. An I/O scheduler executing on a virtual machine can identify priority tags associated with requests or commands on the virtual machine. The I/O scheduler can create one or more queues based upon the priority of each request, and can then transmit requests in order of priority. The I/O scheduler can also use information about the storage array, such as layout information or cache information, and can accordingly optimize the transmission of requests to the storage array.


