[openstack-dev] [nova][libvirt] VIR_MIGRATE_NON_SHARED_INC works more like full copy in block migration ?
Chris Friesen
chris.friesen at windriver.com
Wed Jan 13 20:57:10 UTC 2016
On 01/12/2016 05:35 AM, Kashyap Chamarthy wrote:
> On Sun, Jan 10, 2016 at 06:07:33PM +0800, Luo Gangyi wrote:
>> Hi devs,
>>
>>
>> Do you test the difference between within and without
>> VIR_MIGRATE_NON_SHARED_INC ?
>>
>>
>> When I add VIR_MIGRATE_NON_SHARED_INC in block_migration_flags in
>> nova, nova block migration behaves more like a full copy of disk. The
>> disk in destination nodes is large(10GB+) and the process of live
>> migration is slow.
>>
>>
>> However, when I remove VIR_MIGRATE_NON_SHARED_INC in
>> block_migration_flags in nova, nova block migration behaves more like
>> a incremental copy of disk. The disk in destination nodes is
>> small(10MB-) and the process of live migration is very fast.
>>
>>
>> So I was confused about what VIR_MIGRATE_NON_SHARED_INC really means.
>
> There are two flags that are related, that might be helpful to be clear
> about: VIR_MIGRATE_NON_SHARED_DISK and VIR_MIGRATE_NON_SHARED_INC.
>
> Below is an explanation[1] with example, by Eric Blake, from
> libvirt-users list.
>
> NB: It is talking in terms of `virsh` commands, where
> '--copy-storage-all' means VIR_MIGRATE_NON_SHARED_DISK and
> '--copy-storage-inc' means VIR_MIGRATE_NON_SHARED_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."
The original post syas that setting VIR_MIGRATE_NON_SHARED_INC is resulting in a
larger file and slower migration than if it is not set.
This doesn't seem to match the expected behaviour. (Which is that it would be
incremental and thus smaller/faster.)
Chris
More information about the OpenStack-dev
mailing list