Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

KVM: Add io driver option to libvirt XML for io_uring support #4883

Copy link
Copy link
@wido

Description

@wido
Issue body actions
ISSUE TYPE
  • Feature Idea
COMPONENT NAME
KVM
CLOUDSTACK VERSION
master
SUMMARY
ouring is a new kernel asynchronous I/O processing mechanism proposed as a much faster alternative for conventional Linux AIO. Patches were merged in Linux 5.1 and gave a promised performance boost. We decided to integrate it into QEMU to make virtualized storage devices work more efficiently. Let's take a look at how iouring works in QEMU.

Source:

By using io_uring with Qemu we can see a massive I/O performance improvement within Virtual Machines running from Local and/or NFS storage.

In order to use this we need:

  • Qemu >= 5.0
  • Libvirt >= 6.3.0

We then need to add this to the XML definition for libvirt which would then look like:

    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback' discard='unmap' io='io_uring'/>
      <source file='/var/lib/libvirt/images/a0f677c6-b065-4795-b468-2b5974496c75'/>
      <backingStore/>
      <target dev='sda' bus='scsi'/>
      <serial>a0f677c6b0654795b468</serial>
      <alias name='scsi0-0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

With io_uring I/O performance can improve drastically and reach near bare-metal performance.

Currently there is no Qemu version in a stable Ubuntu nor CentOS release, but we can already merge this in master so that when this is released we can use it.

Reactions are currently unavailable

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.