QEMU is an open source machine emulator and virtualizer when used in
combination with hypervisors such as Xen or KVM, the Linux Kernel-based
Virtual Machine.
This talk will focus on QEMU's Block Layer, and in particular it will
examine the four main types of (potentially long-running) live block
operations: 'stream', 'commit', 'mirror', and 'backup' in detail. After
setting some context, we will see what they are, where they're used, and
how they can be invoked via the QMP (QEMU Machine Protocol) interface or
the libvirt API.
We will also see how these can be combined with other QEMU features like
its built-in Network Block Device (NBD) server or the "Dirty Bitmaps"
infrastructure to provide neat solutions like live migration with
non-shared storage, incremental backups, and so forth.
Why should you care? The QEMU Block Layer is the bedrock of modern
storage virtualization features that we now take for granted -- a robust
QCOW2 file format, point-in-time snapshots, advanced disk configuration,
complex image backing chains, and much more. Although some of these
features are accessible via the libvirt API or high-level management
software like OpenStack, it is instructive to look under the hood.
Audience: This session is geared towards anyone using or developing open
source virtualization software, specifically in the KVM, Xen, QEMU and
libvirt ecosystem. The talk will be set in context such that operators
of higher-level software such as OpenStack might also gain an
appreciation for the details.