Virtual-BFQ (V-BFQ) I/O Scheduling Boosts Virtualized Systems
Virtualization has proliferated in the entire server and desktop markets and is already pervading the embedded market segments, such as mobile, automotive, networking. In these sectors, the top priority for users and the most desired feature is to ensure fast responsiveness from running applications; in fact it's expected, from the underlying hardware and the software applications that come with it, that even within virtualized systems they behave smooth with low latency and high responsiveness.
Smooth operation of audiovisual applications and low latency in interactive programs are now considered a standard for a successful product, and these requirements will still be prelevant and carry on in any virtualization solution. In contrast to the server and desktop markets though, the mobile segment is relatively limited in resources, especially in storage, where devices are smaller in size and less performant.
Top level architecture of V-BFQ in Linux/KVM
For this reason Virtual Open Systems has improved scheduling performance in virtualized systems, by enhancing storage I/O scheduling with the introduction of Virtual-BFQ (V-BFQ). V-BFQ is a coordinated scheduling mechanism between host and guest, that guarantees low latency even in constrained I/O workloads. Virtual Open Systems provides additional support to integrate V-BFQ to specific use cases and platforms.
V-BFQ preserves low latency for storage I/O in virtualized environments
Serious latency, responsiveness, or even, starvation issues may occur in a virtualized environment if applications in virtual machine(s) and the host are performing storage I/O operations. As a solution to this problem, Virtual Open Systems developed V-BFQ, an extended version of the BFQ storage-I/O scheduler, designed for virtualized systems using KVM on ARM architectures. In addition to providing, both a high throughput and strong fairness guarantees, V-BFQ preserves even in a virtualized environment, the low-latency features that BFQ sports on bare-metal systems.
In more details, V-BFQ provides low latency for:
- Interactive applications
- Soft real-time applications
Guaranteeing low latency for interactive applications
Even in the presence of a heavy background workload on a guest virtual disk, and/or a heavy additional background workload on the physical storage device, V-BFQ preserves high application responsiveness. For example in conditions where heavy workloads and interactive applications coexist, the responsiveness achieved by V-BFQ is comparable to or about the same as if both the guest virtual and physical disks were idle:
- If one or more large files are being read/written in a guest, and/or in the host, starting an application or loading a file, it takes about the same time as if the storage device was idle.
- As a comparison, with CFQ, NOOP, DEADLINE or SIO, and under the same stress test conditions, running applications experience high latencies, or even become unresponsive until all background workloads are terminated.
Achieving low latency for soft real-time applications
By utilizing Virtual Open Systems V-BFQ, soft real-time applications, such as audio and video players, or audio- and video-streaming applications, benefit the same latencies regardless of the load of the virtual and physical storage devices. As a consequence, the presence of background workloads does not cause any artifacts or buffering related issues.
A video demonstration has been prepared by Virtual Open Systems to highlight both of the aforementioned problems of responsiveness and latency, by directly comparing the CFQ and V-BFQ schedulers and their behavior with various background workloads.
Virtual Open Systems V-BFQ scheduler aims to preserve low latency for virtualized systems