Storage Coprocessor IO Queue Merging for Virtual Machine Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cloud computing, the elasticity of virtual machine storage leads to inefficiencies in input/output (IO) operations due to the dynamic allocation of storage across multiple physical disks, resulting in increased latency and overhead, as VMs require flexible storage scaling while maintaining low-latency performance.
Innovation Solution
A storage coprocessor (SCP), such as a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC), is used to aggregate and manage IO operations from multiple virtual machines, creating read and write queues for each physical disk, merging sub-IOs into larger operations and optimizing queue sizes based on disk properties, thereby reducing latency and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If storage is dynamically allocated across multiple physical disks to provide elasticity for virtual machines, then storage flexibility and scalability are improved, but input/output operation latency increases and performance deteriorates
Solution Approach 1:
The patent segments IO operations into two distinct queues: a first queue for parent IO operations from virtual machines and a second queue for sub-IO operations to physical disks. This segmentation allows the system to handle different types of IO operations separately, optimizing the path for each type and reducing overall latency while maintaining storage flexibility.
Solution Approach 2:
The patent introduces an intermediary component (the IO operation manager or hypervisor) that sits between the virtual machines and the physical storage system. This intermediary merges sub-IO operations from multiple VMs into consolidated parent IO operations, reducing the total number of physical disk accesses and improving performance without sacrificing storage elasticity.
2Measurement precision
If multiple small sub-IO operations are issued to physical disks for each virtual machine, then storage allocation precision is improved, but the number of IO operations increases and system overhead increases
Solution Approach 1:
The patent merges multiple small sub-IO operations from different virtual machines into larger parent IO operations. The IO operation manager consolidates these fine-grained storage allocations into fewer, larger physical disk operations, reducing system overhead and improving efficiency while maintaining the precision of storage allocation for each VM.
Solution Approach 2:
The system performs preliminary actions by pre-allocating storage space and creating parent IO operations before actual data transfer. The hypervisor or IO manager prepares consolidated IO commands in advance, which are then executed as single operations rather than multiple separate sub-IOs, reducing the computational overhead of handling numerous individual operations.
3Adaptability or versatility
If a hypervisor manages IO operations for multiple virtual machines, then virtualization flexibility is improved, but the complexity of IO management increases and performance overhead increases
Solution Approach 1:
The patent segments the IO management function into distinct components: the hypervisor handles high-level virtual machine management and parent IO creation, while a dedicated IO operation manager handles sub-IO generation and physical disk communication. This segmentation reduces the complexity burden on the hypervisor and improves overall IO management efficiency.
Solution Approach 2:
The patent extracts the complex task of sub-IO management from the hypervisor and places it in a dedicated IO operation manager or storage driver layer. This extraction allows the hypervisor to focus on virtualization flexibility while the specialized component handles the complexity of translating parent IOs into sub-IOs and managing physical disk operations.
Data Source
AI summary
In an example, there is disclosed a computing apparatus, having: a data interface to communicatively couple to a storage pool having a plurality of disks; a virtual machine manager including a processor; and a storage coprocessor (SCP) to: create a read queue and write queue for the disks in the storage pool; receive an input/output (IO) operation from a virtual machine, the IO operation directed to a storage address located on a disk in the storage pool; and add the IO operation to the queue for the disk.


