Improving KVM to Support Very High and Scalable Storage I/O Rates

Registered by Elena Zannoni

Khoa Huynh (<email address hidden>)

Storage performance has always been one of the most difficult challenges in virtualized
environments, especially those database and on-line transaction processing (OLTP)
systems that require extremely high I/O rates, e.g., more than 500,000 I/O operations per
second (IOPS).
In this presentation, an overview of the Kernel-based Virtual Machine (KVM) storage
stack is first provided. We then present our performance results showing that the existing
KVM stack cannot handle anywhere near 500,000 IOPS for a single guest due to an
inherent limitation of the underlying virtualizer (QEMU). Next we examine two
potential modifications to the KVM stack, one in user space (QEMU) and one in kernel
space (host kernel), that could get around this limitation and deliver extremely high I/O
rates. We will show that either of these modifications could deliver more than 500,000
IOPS with a single guest and scale to more than one million IOPS with multiple guests
running on the same physical host.
This presentation should interest many in the Linux kernel and KVM communities. It
should also be of value to those using KVM on enterprise storage systems, including
database, OLTP, and cloud providers. Familiarity with virtualization is assumed.

Biography

Dr. Khoa Huynh has over 20 years of experience in product development, testing,
performance analysis, and customer support. Khoa joined IBM in 1989 where he first
worked on OS/2, became a member of IBM’s Linux Technology Center in 2001, and is
currently on the Linux Performance team. Khoa holds a doctorate in Computer Science.
Khoa has received numerous patents, IBM technical achievement awards, and authored
more than 25 technical papers. Most recently, Khoa presented his work at the 2011
LinuxCon and the 2010 Linux Plumbers Conference

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.