yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #20400
[Bug 1282643] Re: block/live migration doesn't work with LVM as libvirt storage
** Changed in: nova
Status: Fix Committed => Fix Released
** Changed in: nova
Milestone: None => juno-3
--
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/1282643
Title:
block/live migration doesn't work with LVM as libvirt storage
Status in OpenStack Compute (Nova):
Fix Released
Bug description:
## What we did:
We were trying to use block migration in a setup that use LVM as
libvirt storage:
nova live-migrate --block-migrate <uuid> <host-name>
## Current Result:
Nothing happens, no migration, but in libvirtd.log of the destination
hypervisor we saw:
error : virNetClientProgramDispatchError:175 : Failed to open file
'/dev/instances/instance-0000015f_disk': No such file or directory
the /dev/instances/instance-0000015f_disk is the root disk of our
instance.
## What we found:
After a bit of wondering in the code of nova, we saw that nova in the
destination host actually fails to create the instance resources. This
should have been done as part of pre_live_migration RPC call, but this
one doesn't receive any disks in the disk_info argument
(https://github.com/openstack/nova/blob/stable/havana/nova/virt/libvirt/driver.py#L4132)
except the config disk. We found that this due to the fact that LVM
disks (e.g. root disk) are skipped by driver.get_instance_disk_info
method, specially by this line
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L4585-L4587,
which skip any disk that is not a file thinking that it must be a
block storage which not true because LVM disk are created as a block
type
(https://github.com/openstack/nova/blob/stable/havana/nova/virt/libvirt/imagebackend.py#L358),
snippets for the libvirt.xml below:
<devices>
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none"/>
<source dev="/dev/instances/instance-00000163_disk"/>
<target bus="virtio" dev="vda"/>
</disk>
<disk type="file" device="cdrom">
<driver name="qemu" type="raw" cache="none"/>
<source file="/var/lib/nova/instances/6ed79840-c850-498f-9607-ffa92e7cf944/disk.config"/>
<target bus="ide" dev="hdd"/>
</disk>
<interface type="bridge">
<mac address="fa:16:3e:f0:61:24"/>
<model type="virtio"/>
<source bridge="brqe914da2f-c4"/>
<target dev="tap258425f6-9b"/>
</interface>
<serial type="file">
<source path="/var/lib/nova/instances/6ed79840-c850-498f-9607-ffa92e7cf944/console.log"/>
</serial>
<serial type="pty"/>
<input type="tablet" bus="usb"/>
<graphics type="vnc" autoport="yes" keymap="en-us" listen="0.0.0.0"/>
</devices>
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1282643/+subscriptions
References