live migration does not work after volume migration
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Expired
|
High
|
Unassigned |
Bug Description
Hi,
$subj
[#]> rpm -qi openstack-
Name : openstack-
Epoch : 1
Version : 15.0.0
Release : 1.el7
STR:
-configure 2x compute node with cinder storage and lvm back-ends;
-crate bootable volume from image;
-create instance and use bootable volume;
-migrate volume from current node to another
-try to perform live migration
Actual Result:
-live migration fails:
-------
2017-07-21 11:33:00.554 4552 ERROR nova.virt.
2017-07-21 11:33:00.599 4552 ERROR nova.virt.
Jul 21 11:33:00 compute-02 nova-compute: Traceback (most recent call last):
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: timer()
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: cb(*args, **kw)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: waiter.
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: result = function(*args, **kwargs)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: return func(*args, **kwargs)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: instance=instance)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: self.force_
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: six.reraise(
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: bandwidth=
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: destination, params=params, flags=flags)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: result = proxy_call(
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: rv = execute(f, *args, **kwargs)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: six.reraise(c, e, tb)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib/
Jul 21 11:33:00 compute-02 nova-compute: rv = meth(*args, **kwargs)
Jul 21 11:33:00 compute-02 nova-compute: File "/usr/lib64/
Jul 21 11:33:00 compute-02 nova-compute: if ret == -1: raise libvirtError ('virDomainMigr
Jul 21 11:33:00 compute-02 nova-compute: libvirtError: missing source information for device vda
-------
Here is disk description when instance was created
-------
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/
<
<target dev='vda' bus='virtio'/>
<
<alias name='virtio-
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
-------
Here is disk description during migration:
-------
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/
<
<mirror type='file' file='/
<format type='raw'/>
<source file='/
</mirror>
<target dev='vda' bus='virtio'/>
<
<alias name='virtio-
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
-------
Here is disk description after the migration:
-------
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source file='/
<
<target dev='vda' bus='virtio'/>
<
<alias name='virtio-
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
-------
Here is disk description after instance hard reboot:
-------
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/
<
<target dev='vda' bus='virtio'/>
<
<alias name='virtio-
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
-------
The issue is caused by the fact that dist type is changed from 'block' to 'file' after volume migration. Please note that after hard reboot instance the xml description is fixed and live migration works.
tags: | added: live-migration volumes |
tags: | added: libvirt |
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → High |
So, as per this report, it seems like 'block' as the disk type post-migration is not being retained.
Here's a related (merged) patch that changed the disk type from 'file' to 'block' for block devices:
https:/ /review. openstack. org/#/c/ 465205/: Use VIR_DOMAIN_ BLOCK_REBASE_ COPY_DEV when rebasing