← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1262914] [NEW] Unnecessary data copy during cold snapshot

 

Public bug reported:

When creating a cold snapshot, LibvirtDriver.snapshot() creates a local
copy of the VM image before uploading from that copy into a new image in
Glance.

In case of snapshotting a local file backed VM to Swift, that's one copy
too many:  if the target format matches the source format, the local
file can be uploaded directly, halving the time it takes to create a
snapshot. In case of snapshotting an RBD backed VM to RBD backed Glance,
that's two copies too many: a copy-on-write clone of the VM drive could
obviate the need to copy any data at all.

I think that instead of passing the target location as a temporary file
path under snapshots_directory, LibvirtDriver.snapshot() should pass
image metadata to Image.snapshot_extract() and let the image backend
figure out and return the target location.

** Affects: nova
     Importance: Undecided
         Status: New

-- 
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/1262914

Title:
  Unnecessary data copy during cold snapshot

Status in OpenStack Compute (Nova):
  New

Bug description:
  When creating a cold snapshot, LibvirtDriver.snapshot() creates a
  local copy of the VM image before uploading from that copy into a new
  image in Glance.

  In case of snapshotting a local file backed VM to Swift, that's one
  copy too many:  if the target format matches the source format, the
  local file can be uploaded directly, halving the time it takes to
  create a snapshot. In case of snapshotting an RBD backed VM to RBD
  backed Glance, that's two copies too many: a copy-on-write clone of
  the VM drive could obviate the need to copy any data at all.

  I think that instead of passing the target location as a temporary
  file path under snapshots_directory, LibvirtDriver.snapshot() should
  pass image metadata to Image.snapshot_extract() and let the image
  backend figure out and return the target location.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1262914/+subscriptions


Follow ups

References