yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #77371
[Bug 1818847] [NEW] Fix QEMU cache mode used for image conversion and Nova instances
Public bug reported:
Nova uses QEMU's disk image cache modes in two main areas:
(1) When decicding what cache mode to use for the target disk image when
converting (using `qemu-img convert`) images from one format to
another (qcow2 <-> raw).
See unprivileged_convert_image() in nova/privsep/qemu.py.
(2) When configuring cache modes for running guests (Nova instances).
Nova tells libvirt what cache mode to use, and libvirt will in turn
configure block devices via QEMU (using its '-drive' command-line
option).
See disk_cachemode() in nova/virt/libvirt/driver.py. (And also for
"volume drivers" like SMBFS and Virtuozzo Storage also use
'writethrough' -- refer smbfs.py and vzstorage.py.)
In both cases Nova uses QEMU's a combination of cache modes 'none' and
'writethrough'. But that is incorrect, because of our misunderstanding
of how cache modes work. E.g. Nova's libvirt driver currently assumes
(refer disk_cachemode()) that 'writethrough' and 'none' cache modes have
the same behaviour with respect to host crash safety, which is not at
all true.
Fix these wrong assumptions.
(Also consult the QEMU Block Layer developers to double-check the
behaviour of cache modes and where they are applicable.)
** Affects: nova
Importance: Undecided
Status: New
** Summary changed:
- Fix QEMU cache mode for image conversion and Nova instances
+ Fix QEMU cache mode used for image conversion and Nova instances
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1818847
Title:
Fix QEMU cache mode used for image conversion and Nova instances
Status in OpenStack Compute (nova):
New
Bug description:
Nova uses QEMU's disk image cache modes in two main areas:
(1) When decicding what cache mode to use for the target disk image when
converting (using `qemu-img convert`) images from one format to
another (qcow2 <-> raw).
See unprivileged_convert_image() in nova/privsep/qemu.py.
(2) When configuring cache modes for running guests (Nova instances).
Nova tells libvirt what cache mode to use, and libvirt will in turn
configure block devices via QEMU (using its '-drive' command-line
option).
See disk_cachemode() in nova/virt/libvirt/driver.py. (And also for
"volume drivers" like SMBFS and Virtuozzo Storage also use
'writethrough' -- refer smbfs.py and vzstorage.py.)
In both cases Nova uses QEMU's a combination of cache modes 'none' and
'writethrough'. But that is incorrect, because of our misunderstanding
of how cache modes work. E.g. Nova's libvirt driver currently assumes
(refer disk_cachemode()) that 'writethrough' and 'none' cache modes have
the same behaviour with respect to host crash safety, which is not at
all true.
Fix these wrong assumptions.
(Also consult the QEMU Block Layer developers to double-check the
behaviour of cache modes and where they are applicable.)
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1818847/+subscriptions
Follow ups