Live migration fails with an attached non-bootable Cinder volume (Pike)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Low
|
Mike Lowe | ||
Ocata |
Fix Committed
|
Undecided
|
Christian Berendt | ||
Pike |
Fix Committed
|
Undecided
|
Sahid Orentino |
Bug Description
I have setup a fresh OpenStack HA Pike environment on Ubuntu 16.04.3. Live migration has been enabled and works so far. As storage backend I am using Ceph v12.2.0 (Luminous). When you attach a secondary volume to a vm and try to live migrate the vm to another host, it fails with the following exception:
2017-09-07 08:30:46.621 3246 ERROR nova.virt.
2017-09-07 08:30:47.293 3246 ERROR nova.virt.
When you (not live) migrate the corresponding vm with the attached volume, migration succeeds. When you launch the vm from a bootable volume, migration and live migration succeeds in both cases. Only live migration with an additional attached volume fails. Because of Ceph RDB volumes, migration does not require "Block migration".
Compute node:
$ pip list | grep -E 'nova|cinder'
nova (16.0.0)
python-cinderclient (3.1.0)
python-novaclient (9.1.0)
Controller node:
$ pip list | grep -E 'nova|cinder'
cinder (11.0.0)
nova (16.0.0)
python-cinderclient (3.1.0)
python-novaclient (9.1.0)
$ ceph --version
ceph version 12.2.0 (32ce2a3ae5239e
Is this a normal behaviour?
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → Low |
Changed in nova: | |
assignee: | nobody → Surya Seetharaman (tssurya) |
tags: | added: libvirt |
Changed in nova: | |
assignee: | Mike Lowe (jomlowe) → melanie witt (melwitt) |
Changed in nova: | |
assignee: | melanie witt (melwitt) → Mike Lowe (jomlowe) |
This is the corresponding libvirt configuration file of the vm.
####### ####### ####### ####### # 00000030. xml ####### ####### ####### #
instance-
#######
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit instance-00000030
or other application using the libvirt API.
-->
<domain type='kvm'> instance- 00000030< /name> 58538546- 09f7-4efb- abe1-4eaf008fe7 56</uuid> openstack. org/xmlns/ libvirt/ nova/1. 0"> nova:name> test-vm02< /nova:name> nova:creationTi me>2017- 09-07 06:59:17< /nova:creationT ime>
<nova: memory> 2048</nova: memory>
<nova: disk>20< /nova:disk>
<nova: swap>0< /nova:swap>
<nova: ephemeral> 0</nova: ephemeral>
<nova: vcpus>1< /nova:vcpus> /nova:flavor> 2f746799a6408a5 23e6cd25" >admin< /nova:user>
<nova: project uuid="ed2d2efd8 6dd40e7a45491d8 502318d3" >demo</ nova:project> ce74-421d- 98a9-79768f36e5 e1"/> instance> >2097152< /memory> >2097152< /currentMemory> 'static' >1</vcpu> 1024</shares> rer'>OpenStack Foundation</entry> >OpenStack Nova</entry> >16.0.0< /entry> >74bf283c- f6a8-c600- 0293-894b59a507 24</entry> >58538546- 09f7-4efb- abe1-4eaf008fe7 56</entry> >Virtual Machine</entry> 'pc-i440fx- xenial' >hvm</type> 'allow' >SandyBridge< /model> 'delay' /> 'catchup' /> destroy< /on_poweroff> restart< /on_reboot> destroy< /on_crash> /usr/bin/ kvm-spice< /emulator> e43e-4a1e- 959a-b9989f02e6 32'/> 58538546- 09f7-4efb- abe1-4eaf008fe7 56_disk' > 30.200. 141' port='6789'/> 30.200. 142' port='6789'/> 30.200. 143' port='6789'/>
<name>
<uuid>
<metadata>
<nova:instance xmlns:nova="http://
<nova:package version="16.0.0"/>
<
<
<nova:flavor name="m1.small">
<
<nova:owner>
<nova:user uuid="dddfba8e0
</nova:owner>
<nova:root type="image" uuid="b2b7cfc7-
</nova:
</metadata>
<memory unit='KiB'
<currentMemory unit='KiB'
<vcpu placement=
<cputune>
<shares>
</cputune>
<sysinfo type='smbios'>
<system>
<entry name='manufactu
<entry name='product'
<entry name='version'
<entry name='serial'
<entry name='uuid'
<entry name='family'
</system>
</sysinfo>
<os>
<type arch='x86_64' machine=
<boot dev='hd'/>
<smbios mode='sysinfo'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='custom' match='exact' check='partial'>
<model fallback=
<topology sockets='1' cores='1' threads='1'/>
</cpu>
<clock offset='utc'>
<timer name='pit' tickpolicy=
<timer name='rtc' tickpolicy=
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>
<on_reboot>
<on_crash>
<devices>
<emulator>
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap'/>
<auth username='cinder'>
<secret type='ceph' uuid='e5479084-
</auth>
<source protocol='rbd' name='vms/
<host name='10.
<host name='10.
<host name='10.
</source>
<target dev='sda' bus='scsi'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writ...