On 04/29/2015 10:09 AM, Andreas Buschmann wrote:
Hello,
what is really the difference between
virsh migrate --copy-storage-all
and
virsh migrate --copy-storage-inc
?
If you use qcow2 backing chains for thin provisioning, as in:
base.qcow2 <- active.qcow2
then --copy-storage-all copies the entire disk over to the destination
(both base.qcow2 and active.qcow2 contents), while --copy-storage-inc
copies only active.qcow2 (and assumes you have manually copied
base.qcow2 in some other means - since it is read-only, it won't change
from the last migration, and there are some storage arrays where you can
very efficiently copy files around). Thus, --copy-storage-inc can be
MUCH faster if active.qcow2 represents a small delta in relation to
base.qcow2.
There are some documents talking about NBD snapshots, but the user
visible semantics are incomplete.
The above conversation is independent of NBD snapshots, which are
something else altogether.
Where does the incremental stuff happen?
Does it require qcow2 files?
The active layer has to be able to have backing images (qcow2 is the
most common format that has this property, but other formats like qed
also work). The backing file can be any format.
Does it work with raw files?
Raw files can't have backing images, so there is nothing incremental to
be copied.
Does "--copy-storage-inc" require existing snapshots?
No. It requires existing backing files. 'virsh snapshot-create' for
creating external snapshots is one way to create backing file chains,
but you can have backing chains without using libvirt snapshot chains to
create them.
Does "--copy-storage-inc" require existing snapshots which
are in an
external file so that there is a visible chain [base] <- [sn1] <- [sn2]
Yes.
Background:
I am trying to understand what really happens, so I can use the tools
for a reasonable fast failover between two servers with local storage.
more Background:
I have VMs and bare metal servers which do use expensive shared storages
like NetApp, EMC² VNX, HP and others, but the shared storage boxes all
require customer visible maintenance downtimes every 12 to 20 month.
And these downtimes take a long lead time and are between 01:00 and 05:00.
Mit freundlichen Gruessen
Andreas Buschmann
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org